これは、私が作成したアプレット プロジェクトのディレクトリ構造です。
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
