我正在尝试将 vlcj 应用程序编译成 java applet。我有 vlcj 在 /lib
中运行所需的 3 个 jar 文件.我的类(class)文件在/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) 然后我生成 key :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
最佳答案
java.lang.NoClassDefFoundError: uk/co/caprica/vlcj/component/EmbeddedMediaPlayerComponent.
包含 uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent
的 Jar 需要添加到小程序的运行时类路径中。这是通过 applet
元素的 archive
属性实现的。它应该是小程序所需的 Jar 的逗号分隔列表。根据编译细节并假设它们都与 HTML 位于同一目录中,可能会导致此 applet 元素。
<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>
关于java - VLCJ Java Applet 不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058539/