0

HTMLページに次のコードがあります

        <applet code="com.griaule.fingerprintsdk.appletsample.FormMain"
            archive="SignedFingerprintSDKJava.jar, AbrirAplicativoAssinado.jar"
            width="515" height="560">
        </applet>

HTML ページを実行すると、次のようなエラーが表示されました。"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.
4

2 に答える 2

1

「クラスが見つかりません」は署名とは何の関係もないはずです。jarファイルはhtmlファイルと同じディレクトリにあると思いますか?

複数のアーカイブをリストする方法に問題がある可能性があります。次のアプローチを試すことができます。

  • ,アーカイブ リストから を省略し、スペースだけを残します。
  • ,(スペースを含む) を:またはに置き換えます;
  • マニフェストのみを含む jar ファイルを作成し、そのマニフェストにClass-Path、スペースで区切られた他の 2 つのアーカイブをリストするプロパティを追加します。そのファイルをarchive=パラメーターとして使用します。
  • jar ファイルの 1 つを変更してClass-Path、そのマニフェストのプロパティで他のファイルを参照し、そのファイルのみをarchive=パラメーターにリストします。

また、jar ファイルを構築する方法のように見えます。すべてのクラス ファイルは、内部ディレクトリ構造なしで、ファイルのルート ディレクトリに配置されます。jar ファイルのディレクトリ構造は、クラスのパッケージ構造、つまりpackageソース コードの行、およびタグのcode=パラメータと一致する必要があります。applet

jar ファイル内にディレクトリ構造を作成するには、ディレクトリを に変更しC:\Users\lucas\workspace\applet-chave\bin、実行してディレクトリ全体をアーカイブjar cvf C:\Users\lucas\desktop\AbrirAplicativo.jar comに追加します。com

于 2012-07-19T14:02:36.217 に答える
0

指定する必要があるのに、ページFormMainのどこかを指定しています.htmlcom.griaule.fingerprintsdk.appletsample.FormMain

あなたが質問に入れたすべての署名は、ClassNotFoundException.

を正しくビルドしているかどうかもわかりません。.jarおそらく、ユーザー パスと.jar. 時間をかけて Maven をセットアップして をビルドする.jarか、少なくとも Eclipse に組み込まれたツールを使用して をエクスポートする.jarことをお勧めします。そうすれば、正しくビルドされていることを確認できます。手作業で行うと、あらゆる種類の間違いが発生する可能性があります。

于 2012-07-19T14:02:09.603 に答える