在我的Jar文件中找不到java类
我在HTML页面中有以下代码
<applet code="com.griaule.fingerprintsdk.appletsample.FormMain"
archive="SignedFingerprintSDKJava.jar, AbrirAplicativoAssinado.jar"
width="515" height="560">
</applet>
当我运行html页面时,a收到一个错误,上面写着:"ClassNotFoundException, FormMain.class"
我运行了jarscan,在jar文件中找到了类FormMain
发生了什么事
这就是我生成jar文件的方式
jar cvf C:\Users\lucas\desktop\AbrirAplicativo.jar C:\Users\lucas\workspace\applet-chave\bin\com\griaule\fingerprintsdk\appletsample\AppletInstaller.class C:\Users\lucas\workspace\applet-chave\bin\com\griaule\fingerprintsdk\appletsample\ColorPane.class C:\Users\lucas\workspace\applet-chave\bin\com\griaule\fingerprintsdk\appletsample\FormMain.class C:\Users\lucas\workspace\applet-chave\bin\com\griaule\fingerprintsdk\appletsample\FormOptions.class C:\Users\lucas\workspace\applet-chave\bin\com\griaule\fingerprintsdk\appletsample\Util.class
生成密钥
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
验证分配
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.
# 1 楼答案
好的,“找不到类”应该与签名无关。我认为jar文件与html文件位于同一目录中
列出多个存档的方式可能有问题。您可以尝试以下方法:
,
,只留下空间李>,
(包括空格)替换为:
或;
李>Class-Path
属性,列出其他两个存档,并用空格分隔。将该文件用作archive=
参数李>Class-Path
属性中的另一个,并在archive=
参数中仅列出该jar文件李>它还类似于您构建jar文件的方式,所有类文件都将放在文件的根目录中,而没有内部目录结构。jar文件中的目录结构必须与类的包结构相匹配,即源代码中的
package
行,以及applet
标记的code=
参数为了在jar文件中创建目录结构,请将目录更改为
C:\Users\lucas\workspace\applet-chave\bin
,然后执行jar cvf C:\Users\lucas\desktop\AbrirAplicativo.jar com
将整个目录com
添加到归档文件中# 2 楼答案
您正在
FormMain
页面上的某处指定.html
,而您应该指定的是com.griaule.fingerprintsdk.appletsample.FormMain
你在问题中提出的所有签名内容都与a
ClassNotFoundException
无关我也不确定您是否正确构建了
.jar
,它可能包括您的用户路径以及.jar
中的Eclipse工作目录。最好花点时间设置Maven来构建.jar
,或者至少使用Eclipse中内置的工具来导出.jar
,这样您就可以确保它是正确构建的。手工操作容易犯各种各样的错误