Java 在我的Jar文件中找不到类

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 -

我在HTML页面中有以下代码

        <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文件
它还类似于您构建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个问题”。