2009-12-27 44 views
3

我创建了一个使用两个外部库(JENAJUNG)的JApplet。当我从IDE(使用eclipse)运行它时,applet可以正常工作。我创建了一个jar文件并对它进行了签名(因为applet需要从磁盘读取文本)创建了一个HTML页面来存放applet,但是当我尝试在web浏览器中运行它时,我得到了java安全警告对话框,当我按运行整个浏览器选项卡似乎挂起。试图让一个签名的applet在浏览器中工作,但无法成功

下面是HTML文件,我写道:

<html> 
    <head> 
     <title>Ontology Application</title> 
    </head> 
    <body> 
     <applet code="assignment.Launcher.class" width="1000" height="800" archive="test.jar"></applet> 
    </body> 
</html> 

启动程序类包含初始化,启动,停止和销毁方法,并在项目中使用的所有类都存储在任务包。 test.jar是签名的jar文件,它被放置在与HTML文件相同的文件夹中。

我跟着这个线程的步骤来创建我的私人/公共密钥,证书和签名的jar文件:因为我不确定几个 How to sign and applet (and get it to work)

我有关于整个过程的问题清单的步骤。

问题1:我使用eclipse创建了jar文件(右键单击project - > export - > JAR文件)并保持默认设置。生成的jar文件是否包含我导入到项目中的引用库?如果答案是否定的,我如何在jar文件中包含引用的库?

问题2:如果双击它,生成的jar文件应该运行吗?因为它不运行 (我想是因为没有主类指定,因为一个小程序没有一个主要方法是行不通的,但我的立场予以纠正)

问题3:由于我使用我的小应用程序中的外部库,是否需要对所有导入的jar文件进行数字签名才能使小程序正常工作?或者签署主jar文件(包含我的类)就足够了?

问题4:如果有一天我设法使applet在浏览器中工作,每当应用程序尝试从磁盘读取文本时,Java安全警告对话框会弹出吗?或者在applet加载时安全警告对话框只显示一次?

在此先感谢,并询问问题负载在一个线程遗憾,但他们密切相关的主题:)

+0

是非常明显的,但我觉得一个值得的:如果你不知道你在做什么,你是否觉得从签名的含义,即签字声称这是安全的? – 2009-12-28 01:35:40

+0

我没有任何信任和安全问题,因为我正在开发的项目只是一个学校作业:) – 2009-12-28 07:44:06

回答

4
  1. 你应该在你的HTML applet的声明中使用<PARAM NAME="archive" VALUE='applet.jar, external1.jar, external2.jar'>。你也可以尝试加入Class-Path到你的主罐MANIFEST.MF(见here
  2. 号除非你有一个Main-Class指定您MANIFEST.MF
  3. 是,万一外部罐子做一些安全敏感操作(如阅读/写文件系统)
+0

感谢您的回答,我会尝试您的建议,看看我是否可以得到它的工作。 – 2009-12-28 07:44:56

相关问题