3

我正在尝试将 vlcj 应用程序编译成 java 小程序。我有 vlcj 运行所需的 3 个 jar 文件/lib。而我的类文件在/src. 在 Eclipse 中,小程序在小程序查看器中运行良好。但是当我打包 jar 文件并加载我的测试 html 页面时。什么都没发生!我知道由于 java 小程序的沙盒,小程序需要签名。并且已经签署了小程序,但我肯定做错了什么。

这些是我做的步骤:

1)所以要创建小程序首先我将 .java 文件编译为 .class 文件并将 .class 文件存储在/bin.

javac -cp lib/vlcj-2.1.0.jar:lib/platform-3.4.0.jar:lib/jna-3.4.0.jar Test.java

2)然后我创建我的jar文件

jar cvf Test.jar lib/* Test.class

3)然后我生成密钥:keytool

4)然后我签署Test.jar文件jarsigner以产生SignedTest.jar.

5)然后我将公钥导出到证书

6) 然后将该证书作为可信证书导入。

我的测试 html 页面使用以下命令打开 java 小程序:

<applet code="bin/Test.class" archive="SignedTest.jar” width=200 height=200>

这些步骤中是否有任何错误?我错过了一两个阶段吗?还有一个额外的问题?有人知道如何在linux中获取控制台输出吗?

- - 编辑 - -

这是签名 Jar 文件的结构。

   703 Wed Aug 22 09:25:16 BST 2012 META-INF/MANIFEST.MF
   908 Wed Aug 22 09:25:16 BST 2012 META-INF/SIGNFILE.SF
   782 Wed Aug 22 09:25:16 BST 2012 META-INF/SIGNFILE.DSA
   500 Wed Aug 22 09:06:28 BST 2012 Test$1.class
  1448 Wed Aug 22 09:06:28 BST 2012 Test.class
    40 Tue Aug 14 11:36:48 BST 2012 Notes
1008730 Tue Jul 10 13:15:48 BST 2012 lib/jna-3.4.0.jar
913436 Tue Jul 10 13:15:48 BST 2012 lib/platform-3.4.0.jar
278211 Tue Jul 10 13:15:48 BST 2012 lib/vlcj-2.1.0.jar
   371 Tue Jul 10 13:23:54 BST 2012 .project
   351 Tue Jul 10 13:16:18 BST 2012 .classpath
4

2 回答 2

1
java.lang.NoClassDefFoundError: uk/co/caprica/vlcj/component/EmbeddedMediaPlayerComponent.

需要将包含的 Jaruk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent添加到小程序的运行时类路径中。这是通过元素的archive属性来实现的。applet它应该是小程序所需的以逗号分隔的 Jars 列表。根据编译细节并假设它们都与 HTML 位于同一目录中,可能会导致此小程序元素。

<applet 
    code="Test" 
    archive="SignedTest.jar,vlcj-2.1.0.jar,platform-3.4.0.jar,jna-3.4.0.jar" 
    width=200 
    height=200>
</applet>
于 2012-08-22T14:04:48.940 回答
1

也许 Test.class 永远不会被添加到 .jar 文件中?因为 Eclipse 将 .class 文件放入 /bin/Test.class,而您正在尝试添加 /Test.class

要检查,请尝试

    jar tvf Test.jar

在第 2 步之后。

尝试使用 Eclipse 创建 Jar。文件 | 出口 | 爪哇 | 罐子文件。

于 2012-08-21T19:01:32.317 回答