【发布时间】:2014-01-25 16:27:12
【问题描述】:
我有 Java7 更新 45。我正在测试一个打包在 jar 文件中的小型测试小程序,我试图通过 HTML 页面加载该文件:
<html>
<body>
<applet code="SmallApplet" archive="appTable89Signed.jar" codebase="." width=500 height=500>
<param name="permissions" value="all-permissions" />
</applet>
</body>
</html>
jar 文件清单具有 Permission 属性,其值为“all-permissions”。当我使用经过认证的密钥签署 jar 文件时,我得到了ClassNotFoundException。查看 tomcat 访问日志以及从 Java 控制台输出的信息,我看到 SmallApplet 类正在从 Web 应用程序 URL 加载。
network: Connecting http://xxxxxx:8085/testappletsigning/SmallApplet.class with proxy=DIRECT
后面跟着异常
java.lang.ClassNotFoundException: SmallApplet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: load: class SmallApplet not found
如果我使用自签名并将其作为可信证书导入,那么异常就会消失。
我可以使用认证密钥签署 jar 的唯一方法似乎是在 jar 清单和小程序标记中使用“沙盒”权限。
对这种行为有解释吗?
【问题讨论】:
-
“如果我使用自签名并将其作为受信任的证书导入,那么异常就会消失。” 这很奇怪,我也期待同样的行为大大地。请检查bug database,如果找不到类似的东西,请提出新的报告..
标签: java applet java-7 classnotfoundexception