3

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 の世界、特にアプレットの操作にはかなり慣れていないので、あなたの専門知識に感謝します!

4

2 に答える 2

4

ここにアクセスできるアプレットを接続するには、ポリシー ツールの設定を使用します。

policyTool に移動すると、次のパスにあります。

java->jdk1.3->bin->policyTool Application

Policy Tool ウィンドウが表示されます。
[ポリシー ツール] ウィンドウで、[ポリシー エントリの追加] ボタンを選択します。これにより、ポリシー入力ウィンドウが表示されます

CodeBase を「file:/java bin のパス」として入力します。例えば

CodeBase   file:/c:/java/jdk1.3/bin/

[ポリシー エントリ] ウィンドウで [アクセス許可の追加] ボタンをクリックします。
これにより、「アクセス許可」ウィンドウが表示されます

権限ドロップダウンリストボックスから「すべての権限」を選択します。
そして「OK」をクリック。

ここで、[ポリシー エントリ] ウィンドウの [アクセス許可の追加] ボタンをもう一度押します。

次に、パーミッション ドロップダウン リスト ボックスから [Select "RunTimepermission"] を選択します。次に、[Target Name] ドロップダウン リスト ボックスで [accessClassInpackage] を選択し、テキスト ボックスに次のように入力します。accessClassInpackage.sun.jdbc.odbc

「OK」をクリックします。

[ポリシー エントリ] ウィンドウで [完了] をクリックします。

ポリシー エントリ ウィンドウで file->save Java インストールの「bin」に保存します。名前を覚えておいてください...たとえば、..appletpermission 'save'と言ってください

これで、アクセス用のポリシー ファイルが作成されました

コマンドプロンプトでJavaファイルをコンパイルします

javac programname.java

プログラムを実行するには、cmd プロンプトで次のように入力します。

appletviewer -J-Djava.security.policy=appletpermission programname.java

これですべてが完了しました。

于 2012-10-06T15:45:07.860 に答える
0

構文で時間を無駄にしないでください。代わりにポリシー ツールを使用してください。

ここをクリック: ポリシー ツール

于 2011-06-24T14:20:31.583 に答える