1

Java 1.7.25(セキュリティを最小に設定、それが重要な場合は 32 ビット)、Windows 8、Google Chrome を使用。

いくつかの画像をロードする必要があるアプレットを作成しました。すべてが jar にパックされ、html ファイルは次のようになります。

<html>
 <body>
   <applet code="package.AppletRun.class"
           archive="appletJar.jar" width="1100" height="700">
   </applet>
 </body>
</html>

いくつかの手法を使用して画像を読み込もうとしました:

  • Image image = applet.getImage(applet.getCodeBase());
  • Image image = getClass().getResource("relative/package/filename");
  • Image image = getClass().getResource("/absolute/package/filename");
  • Image image = getClass().getResource("filename"); //same package
  • Image image = someStrangeThingsICantEvenRemeber();

問題は、すべてが正常に機能することです (画像を読み込まないように設定しました) が、画像を読みたくないだけで、コンソールに表示されますjavaNullPointerException。Eclipse では問題ありません。アプレット ビューアーは文句を言いません。jar (クラス ファイルと同じ) からアプレットにイメージをロードするにはどうすればよいですか?

さらに、 nullapplet.getCodeBase()が返され、 JAppletインスタンスを自分で作成していないことを 100% 確信しています。

4

2 に答える 2

2

問題はコードではなく、Java (またはセキュリティ設定) にあります。使用しているjarファイルに自己署名する必要があります。ブラウザはより多くの警告ウィンドウを表示しますが、最終的にはgetClass().getResources(...). この署名の変更が何であるかはわかりませんが、機能します。

于 2013-06-26T00:16:43.597 に答える