我正在尝试将vlcj应用程序编译为java applet。我有vlcj在/lib
中运行所需的3个jar文件。我的班级档案在/src
。在eclipse中,applet在applet查看器中运行良好。但是当我打包jar文件并加载我的测试html页面时。什么都没发生!我知道applet需要签名,因为java applets的沙盒。并签署了applet,但我肯定一定做错了。
以下是我的步骤:
1)因此,首先要创建applet,然后将.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)然后将该证书导入为可信证书。
My Test html页面用以下命令打开java applet:
<applet code="bin/Test.class" archive="SignedTest.jar” width=200 height=200>
这些步骤中的任何一个都是错误的吗?我错过了一两个舞台吗? 还有奖金问题?谁知道如何在Linux中获得控制台输出?
---编辑---
这是Signed Jar File的结构。
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
答案 0 :(得分:1)
也许Test.class永远不会被添加到.jar文件中?因为Eclipse将.class文件放入/bin/Test.class,并且您尝试添加/Test.class
要检查,请尝试
jar tvf Test.jar
在第2步之后。
尝试使用Eclipse创建Jar。档案|出口| Java | Jar文件。
答案 1 :(得分:1)
java.lang.NoClassDefFoundError: uk/co/caprica/vlcj/component/EmbeddedMediaPlayerComponent.
需要将包含uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent
的Jar添加到applet的运行时类路径中。这是通过archive
元素的applet
属性实现的。它应该是applet所需的以逗号分隔的Jars列表。基于编译细节并假设它们都与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>