Java 在我的Jar文件中找不到类
我在HTML页面中有以下代码Java 在我的Jar文件中找不到类,java,applet,classnotfoundexception,Java,Applet,Classnotfoundexception,我在HTML页面中有以下代码 <applet code="com.griaule.fingerprintsdk.appletsample.FormMain" archive="SignedFingerprintSDKJava.jar, AbrirAplicativoAssinado.jar" width="515" height="560"> </applet> 生成密钥 keytool -
<applet code="com.griaule.fingerprintsdk.appletsample.FormMain"
archive="SignedFingerprintSDKJava.jar, AbrirAplicativoAssinado.jar"
width="515" height="560">
</applet>
生成密钥
keytool -genkey -dname "cn=AbrirAplicativoApplet, ou=XXX, o=XXX, l=São Paulo, s=SP c=BR" -alias AbrirAplicativoAppletKey -keystore C:\ChaveAbrirAplicativoApplet -storepass 123456 -validity 7300
分配Jar文件
jarsigner -keystore C:\users\lucas\desktop\ChaveAbrirAplicativoApplet -storepass 123456 -signedjar "C:\Users\lucas\Desktop\AbrirAplicativoAssinado.jar" "C:\Users\lucas\Desktop\AbrirAplicativo.jar" AbrirAplicativoAppletKey
keytool -export -keystore C:\users\lucas\desktop\ChaveAbrirAplicativoApplet -alias AbrirAplicativoAppletKey -file C:\users\lucas\desktop\CertificadoAbrirAplicativoApplet.x509
出口证书
jarsigner -keystore C:\users\lucas\desktop\ChaveAbrirAplicativoApplet -storepass 123456 -signedjar "C:\Users\lucas\Desktop\AbrirAplicativoAssinado.jar" "C:\Users\lucas\Desktop\AbrirAplicativo.jar" AbrirAplicativoAppletKey
keytool -export -keystore C:\users\lucas\desktop\ChaveAbrirAplicativoApplet -alias AbrirAplicativoAppletKey -file C:\users\lucas\desktop\CertificadoAbrirAplicativoApplet.x509
验证分配
keytool -import -alias AbrirAplicativoAppletKey -file C:\CHAVES\CertificadoAbrirAplicativoApplet.x509
也许我的问题出在PolicyTool
当我尝试放置一个新的策略条目时,我得到了以下错误
java.net.MalformedURLException: no protocol: AbrirAplicativoAssinado.jar
但是,如果我的jar文件在我的桌面上,我怎么能在这个字段中放置URL呢
我试着把http://localhost/AbrirAplicativoAssinado.jar
但出现新错误
There is not a public key for the alias AbrirAplicativoAppletKey.
您正在
.html
页面的某个地方指定FormMain
,而您应该指定的是com.griaule.fingerprintsdk.appletsample.FormMain
您在问题中输入的所有签名内容都与ClassNotFoundException
无关
我也不确定您是否正确构建了
.jar
,它可能包括您的用户路径以及.jar
中的Eclipse工作目录。最好花点时间设置Maven来构建.jar
,或者至少使用Eclipse中内置的工具来导出.jar
,这样您就可以确保它是正确构建的。手工操作可能会出现各种错误。好的,“找不到类”应该与签名无关。我认为jar文件与html文件位于同一目录中
列出多个存档的方式可能有问题。您可以尝试以下方法:
- 从存档列表中省略
,只留下空间,
- 将
(包括空格)替换为、
或:
代码>
- 创建一个只包含清单的jar文件,并在该清单中添加一个
属性,列出其他两个存档,用空格分隔。将该文件用作类路径
参数archive=
- 在清单的
属性中修改一个jar文件以引用另一个,并在类路径
参数中仅列出该jar文件存档=
package
行,以及applet
标记的code=
参数
为了在jar文件中创建目录结构,将目录更改为
C:\Users\lucas\workspace\applet chave\bin
,然后执行jar cvf C:\Users\lucas\desktop\abrraplicativo.jar com
,将整个目录com
添加到归档文件中。在我的html页面中,只是html正文和标记小程序。我的标记小程序就像我说的,code=“com.griaule.fingerprintsdk.appletsample.FormMain”。这只是一个简单的html页面来测试我的小程序。在Eclipse中应该导出为JAR文件吗?如果我在我的代码属性中放入标记applet just FormMain,就会出现异常NoClassDefFoundError,FormMain(错误名称:com/griaule/fingerprintsdk/appletsample/FormMain)。我将所有创建的文件放在同一个目录中OK,这个异常意味着java插件现在可以直接在jar中打开文件FormMain.class
,但会拒绝加载,因为该文件声明它应该属于包com…sample
。因此,将html恢复到以前的状态,并使用目录结构创建jar。但是jar命令,我只需要运行java/jdk1.7.0_05/bin目录,在那里我可以找到jar命令。当我在这个direcotrt之外执行时,会出现一个错误,即“jar”未被识别为intern命令。听起来好像您想将java bin目录添加到您的PATH
环境变量中。或者通过给出完整路径来调用jar
,或者使用ant构建java东西。复制/粘贴jar的结果-tvf the.jar
,其中the.jar
是类所在的jar。我同意这与签名无关。节省一些空间并编辑该信息。出去,你的舱单是什么?多说总比少说好,因为我不喜欢玩“20个问题”。