Javascript を使用して Java アプレットとやり取りする HTML ページを作成しています。アプレットの HTML ページ、javascript ファイル、および .jar ファイルは、ユーザーのファイル システム上のフォルダーにローカルに展開されます。
(これをスタンドアロンの Java アプリケーションとして実装することは、ここではオプションではありません。さまざまな理由から、ここでは説明しません)。
アプレットは、ローカル ファイル I/O を実行する必要があります。そのため、ユーザーの .java.policy ファイルの設定を微調整して、これを許可しようとしています。
次のセットアップが機能する唯一のセットアップであることがわかりました。
grant
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
これは、すべてのアプレットにすべてのファイルの読み取りと書き込みのアクセス許可を付与するため、理想的ではありません。当然、特定のコード ベースに分離することを好みます。ただし、機能する「grant codeBase」構文が見つかりませんでした。
私が試してみました:
grant codeBase "file:/C:/Files/FileIOApplet/-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant codeBase "file:///-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant codeBase "file:${user.home}/-"
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
これは、次の構成を使用して実行されています。
- Firefox 3.6.10
- Java 1.6 アップデート 25
- Windows 7 64 ビット
この .java.policy ファイルの設定でどこが間違っていますか?
私は Java の世界、特にアプレットの操作にはかなり慣れていないので、あなたの専門知識に感謝します!