3

我创建了一个使用两个外部库(JENAJUNG)的 JApplet。当我从 IDE(使用 Eclipse)运行小程序时,它可以正常工作。我创建了一个 jar 文件,对其进行了签名(因为小程序需要从磁盘读取文本),创建了一个 HTML 页面来保存小程序,但是当我尝试在 Web 浏览器中运行它时,我得到了 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方法,项目中用到的所有类都存放在assignment包中。test.jar 是签名的 jar 文件,它与 HTML 文件位于同一文件夹中。

我按照这个线程中的步骤创建了我的私钥/公钥、证书并签署了 jar 文件: 如何签署和小程序(并让它工作)

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

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

问题2:如果我双击生成的jar文件是否应该运行?因为它没有运行(我认为它不起作用,因为没有指定主类,因为小程序没有主方法,但我需要更正)

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

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

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

4

1 回答 1

4
  1. 您应该<PARAM NAME="archive" VALUE='applet.jar, external1.jar, external2.jar'>在 HTML 中的 applet 声明中使用。您也可以尝试添加Class-Path到您MANIFEST.MF的主 jar 中(请参见此处
  2. 没有。除非你Main-Class在你的MANIFEST.MF
  3. 是的,以防外部 jars 执行一些安全敏感操作(例如读/写文件系统)
  4. 不。
于 2009-12-27T09:48:57.740 回答