ClassLoader
によってjava.lang.ClassNotFoundException
がスローされる
症状Sun JavaTM Runtime Environment (JRETM) 実装を使ってブラウザ内でアプレットを実行すると、
ClassLoader
によってjava.lang.ClassNotFoundException
がスローされます。同じアプレットが、Microsoft Virtual Machine (VM) の下では何のエラーもなく実行されます。原因
.cab
ファイルとしてパッケージされたアプレットが原因です。.cab
ファイルは Microsoft Windows 専用のアーカイブ形式であり、Sun JRE ではサポートしていません。解決方法
アプレットのクラスやリソースを
.cab
ファイルから抽出し、それらを Java Development Kit (JDK) に含まれるJava Archive File Format (JARTM)
ツールを使って.jar
ファイルとして再パッケージ化します。次のコマンドを入力してファイルを .jar ファイルとして再パッケージ化します。
jar cvf <jar_file> <input_files>
HTML ページ内の
<APPLET>
タグを変更し、archive
属性に.jar
ファイルを指定します。たとえば、次のコードがあるとします。
<APPLET code="MyApplet" width=100 height=100>
<PARAM name="cabbase" value="package1.cab, package2.cab">
</APPLET>上記のコードを次の例に示すように変更できます。
<
APPLET code="MyApplet" archive="package1.jar, package2.jar" width=100 height=100>
</APPLET>詳細情報
詳細については、JAR ツールのドキュメントを参照してください。