.cab ファイルとしてパッケージされたアプレットを実行すると、java.lang.ClassNotFoundException がスローされる


症状

アプレットを Sun JRE を使用したブラウザで実行している場合、ClassNotFoundExceptionClassLoader でスローされます。同じアプレットが Microsoft VM では実行できます。

原因

.cab ファイルとしてパッケージされたアプレットが原因です。.cab ファイルは Microsoft Windows 専用のアーカイブ形式であり、Sun JRE ではサポートしていません。

解決方法

アプレットクラスとリソースを .cab ファイルから抽出し、JDK の jar ツールを使用して .jar ファイルとして再パッケージします。

        jar cvf <jar_file> <input_files>

また、この .jar ファイルを指定するように、HTML ページの <APPLET> タグの archive 属性を変更する必要もあります。次に例を示します。

        <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 tool documentation」を参照してください。