使用第三方库部署applet

时间:2014-12-19 13:22:18

标签: java applet classpath


我正在尝试将gson库与我的applet一起使用,但JRE(8u25)没有看到库并给我这个错误:

enter image description here

MyAppSigned.jar 是我签名的小程序 gson-2.3.1.jar 是我正在尝试使用的库

测试网页内容(Test.html):

<html>
<body>
<applet code='test.XApplet' width=400  height=400>
    <param name='ARCHIVE' value='MyAppSigned.jar,gson-2.3.1.jar'>
    <param name='codebase' value='http://example.com/Commons'>
</applet>
</body>
</html>

以下是MyAppSigned.jar中清单文件的内容:

Manifest-Version: 1.0
Trusted-Library: true
Class-Path: gson-2.3.1.jar
Permissions: all-permissions
Created-By: 1.6.0_26 (Sun Microsystems Inc.)
Codebase: *
Name: test/XApplet.class
SHA1-Digest: qLHEgL7Or0Ja7Jn7iRZt2lJ/928=

以下是iis上的commons目录的内容: enter image description here

我在测试网页中尝试使用/不使用codebase属性。它没有改变错误 但是,如果我将gson-2.3.1.jar复制到目录 C:\ Program Files \ Java \ jre1.8.0_25 \ lib \ ext ,它可以正常工作

我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先复制JRE_HOME/lib/ext中的jar不是一个好的解决方案,因为那时你要在所有将使用你的applet的客户端机器上复制这个jar。

我认为您的代码问题在<applet>定义中,您使用<param>来定义archive,但在文档archive中定义了其他代码作为<applet>标记的属性,请查看documentation。因此,请尝试按如下方式定义<applet>

<html>
<body>
<applet code="test.XApplet" width="400"  height="400" 
    archive="MyAppSigned.jar,gson-2.3.1.jar" codebase="http://example.com/Commons">
</applet>
</body>
</html>

请注意,最好使用<object>,因为<applet>不支持HTML5标记,还要考虑use deployJava.js,这样可以更轻松地部署applet不同的浏览器。

希望这有帮助,