0

これは、私が作成したアプレット プロジェクトのディレクトリ構造です。

Project
|____classes
|____src
|____resources
  • アプレットはsrcディレクトリにあります。
  • クラスはclassesディレクトリに格納されます。
  • すべての画像、音声、その他のものはresourcesディレクトリに保存されます。

私の問題は、ディレクトリに保存されているイメージをアプレット (コンパイル時に classes ディレクトリにある) にロードしようとするとresources、JVM がAccessControlException. これについてstackoverflowで多くの投稿を読みましたが、なぜこのようになっているのか理解できました(ユーザーがファイルにアクセスできないようにするため)。また、それを修正するためのポリシー ファイルや署名済みの jar ファイルを作成できることも読みました。

これが私のイメージをロードする方法です:

Image image = getImage(getCodeBase(),"path/to/the/image/image.png");

AccesControlExceptionロードしたい画像がclassesサブディレクトリの1つにある場合、それが発生しないことに気付きました。そのため、親ディレクトリ..にアクセスしてからディレクトリにアクセスする ことはできません。イメージをサブディレクトリに配置したり、ポリシー ファイルや署名済みの jar を使用したりせずにイメージをロードする方法はありますか?classesresourcesclasses

4

1 に答える 1

1

..クラスの親ディレクトリにアクセスしてから、リソース ディレクトリにアクセスするために使用できません。

なぜだめですか?いつも私のために働いた。たとえば、このアプレットを参照してください。Cancel残念ながら、(クロスサイトに到達できるようにするために) 信頼されていますが、Oracle JRE を実行している場合は、信頼リクエストで次のようなものを見ることができるはずです..

同じサイトから URL にアクセスする

このアプレットでは:

要するに、アプレットは、サーバーがリソースを提供するホーム サーバー上のどこからでもリソースを取得できる必要があります。

于 2012-12-14T07:00:38.887 に答える