これは、私が作成したアプレット プロジェクトのディレクトリ構造です。
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 を使用したりせずにイメージをロードする方法はありますか?classes
resources
classes