アプレットの .java.policy エントリに問題があります。
アプレットを使用してフォルダーとファイルを作成しようとします。既に jar に署名しており、${user.home}/.java.policy-file に次の行を追加しました。
grant {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
この行を追加すると、私のアプレットはうまく機能しますが、これは良いスタイルではありません。任意の場所のすべての jar がファイルのアクセス許可にもなるためです。
オラクルのページには、codeBase を指定された applet.jar に設定し、signedBy (jar ファイルが署名されているエイリアス) をグランド権限に設定する例があります。
これを何度も試しましたが、うまくいきません。
私が試したコード:
grant codeBase "http://www.wkmovies.de/appletDemo/-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
また
grant signedBy "AKlettke" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
この例をwww.wkmovies.de/appletDemo/index.htmlにアップロードしました。
アプレットが機能するように、ポリシー ファイルを設定するにはどうすればよいですか?
ここで私のコードの抜粋: HTML:
<a href="javascript:document.applet1.createFolder();">
Create Folder at C:\\Temp
</a>
<applet name="applet1" id="applet1" width="0" height="0" alt=""
archive="applets/Demo.jar,applets/lib/commons-lang-2.4.jar"
code="demo.FolderCreator.class">
</applet>
FolderCreator クラス:
try {
File f = new File("C:\\temp");
f.mkdir();
JOptionPane.showMessageDialog(null, "folder created",
"successfull", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage(),
e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
}
(JDK1.6.0_23、Firefox 3.0.19、WinXP 32bit)