java-尝试使签名的applet在浏览器中运行,但失败了

我创建了一个使用两个外部库(JENAJUNG)的JApplet.当我从IDE(使用eclipse)运行小程序时,小程序可以正常工作.我创建了一个jar文件,对其进行了签名(因为applet需要从磁盘读取文本),创建了一个HTML页面来保存applet,但是当我尝试在网络浏览器中运行它时,我得到了Java安全警告对话框,当我按下运行,整个浏览器选项卡似乎挂起.

这是我写的HTML文件:

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

Launcher类包含init,start,stop和destroy方法,项目中使用的所有类都存储在分配包中. test.jar是签名的jar文件,它与HTML文件位于同一文件夹中.

我按照此线程中的步骤创建了我的私钥/公钥,证书并签署了jar文件:
How to sign and applet (and get it to work)

由于不确定几个步骤,因此我有一个有关整个过程的问题清单.

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

问题2:如果我双击生成的jar文件,它应该运行吗?因为它不运行
(我认为这是行不通的,因为因为applet没有main方法,所以没有指定任何主类,但是我有待纠正)

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

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

在此先感谢您,并很抱歉在一个线程中提出大量问题,但是它们与主题密切相关:)

解决方法:

>您应使用< PARAM NAME =“ archive” VALUE ='applet.jar,external1.jar,external2.jar'>在HTML的applet声明中.您也可以尝试将Class-Path添加到主jar的MANIFEST.MF中(请参见here)
>否.除非您在MANIFEST.MF中指定了Main-Class
>是的,以防外部jar执行一些对安全性敏感的操作(例如读/写文件系统)
>否

上一篇:如何在本地主机上的浏览器中运行Java .class小程序


下一篇:Java 1.7 applet CacheEntry阻止动态更新