当前位置:  开发笔记 > 编程语言 > 正文

如何打包具有多个.jar库的applet?

如何解决《如何打包具有多个.jar库的applet?》经验,为你挑选了1个好方法。

我正在从一个大规模的现有项目(Vizster)创建一个Java applet.我在Mac OS X上使用NetBeans 6.7.1和JDK 1.5.

我试图从它的单输出.jar文件运行applet,但是当我这样做时,它在Firefox的屏幕底部显示"applet loaded",并且在java控制台中没有任何内容,但是没有显示在小程序的窗口.我之前在Firefox中遇到过不同的错误,包括"appletNotLoaded:ClassDefNotFoundError"等错误以及安全错误,但我的java控制台中从未有任何输出.这是applet的html文件:


 
  
    
    
  
  
    
  



其中zuve.ZuveApplet.class是我的main方法所在的位置,"ZuveApplet.jar"是输出jar文件的名称.这是ZuveApplet.java,主要方法类:

package zuve;

import vizster.Vizster;
import vizster.VizsterLib;
import java.applet.Applet;

 public class ZuveApplet extends Applet {
     public static final String DEFAULT_START_UID = "186297";

     @Override
     public void init() {
        new Vizster();
     }

    public static void main(String[] argv) {
        VizsterLib.setLookAndFeel();
        //String startUID = argv.length > 0 ? argv[0] : DEFAULT_START_UID;
        String startUID = DEFAULT_START_UID;
        String file = argv.length > 0 ? argv[0] : null;
        new Vizster(startUID, file);
    }
 }

applet作为一个独立的(非嵌入在html中)运行得非常好,但我需要嵌入它."Vizster"对象是JFrame的扩展,所以我想我应该能够创建它的一个实例并将其添加到applet中.可能比这复杂得多吗?

不幸的是,我对java和applet很新.我看过很多关于源树结构的论坛帖子都是个问题,所以:

1)我使用多个包是一个问题吗?它们都在我项目的src目录中.

2)我需要放在我的java主目录中吗?我知道很多人都有类路径问题,但我使用的是现代IDE,我认为这样可以解决所有这些问题.

3)将项目导入NetBeans Java Web应用程序项目时,是否应将applet作为.jar添加到项目中,还是应该添加整个项目?

4)最初当我创建这个applet时,我只有几个源文件和一堆.jar库作为依赖项,但是当我检查输出.jar时,我看到的只是编译后的源文件.没有来自库的文件的痕迹.这应该是怎么回事?我注意到,如果我将输出.jar从其包含的文件夹中移出,它就不能再独立运行了.我认为.jars应该是自包含的,这不是真的吗?制作可执行 jar 有什么我应该知道的吗?

5)在旁注中,html中applet标签中表示的applet的大小是否必须与applet本身的大小完全匹配?

对于巨大的帖子和令人难以置信的模糊问题,我很抱歉,我正在与一个团队合作,在这个团队中,没有人知道关于applet或Java的事情(我知道真正的辉煌).任何形式的帮助或一般性建议都会有所帮助.

谢谢!



1> Devon_C_Mill..:

您可以在归档属性中指定多个jar:




JFrame是顶级容器,因此您无法将其添加到applet中.您可以让applet创建对象的实例,并让它打开自己的窗口.更灵活的方法是将对象重构为JPanel.作为JPanel,如果您还希望支持将其作为应用程序运行,则可以将其添加到JApplet或JFrame.

另请参阅JNLP,因为它允许您将代码部署为applet或应用程序,还提供用于打印和本地文件访问的API.功能不适用于简单的applet.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有