[英].java.policy file and local applet
我正在使用Javascript與Java applet交互的HTML頁面。 applet的HTML頁面,javascript文件和.jar文件將本地部署到用戶文件系統上的文件夾中。
(將此作為一個獨立的Java應用程序,這里不是一個選項;由於各種原因,我不會在這里解釋)。
applet需要做本地文件i / o。 因此,我試圖調整用戶的.java.policy文件中的設置以允許此操作。
我發現以下設置是唯一有效的設置:
grant
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
這並不理想,因為它授予所有applet讀取寫入所有文件的權限。 當然,我更願意隔離到特定的代碼庫。 但是我找不到有效的“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";
};
這是使用此配置運行:
我在哪里設置這個.java.policy文件時出錯?
我對Java世界非常生疏,尤其是與applet一起工作 - 所以我們非常感謝您的專業知識!
要在此處連接具有訪問權限的Applet,請使用以下策略工具設置:
轉到policyTool,您將在以下路徑中找到它:
java->jdk1.3->bin->policyTool Application
出現Policy Tool窗口。
在Policy Tool窗口中,選擇“Add Policy Entry”按鈕。 這將帶您進入Policy Entry窗口
輸入CodeBase作為“你的java bin的文件:/路徑”。 例如
CodeBase file:/c:/java/jdk1.3/bin/
現在按“策略條目”窗口中的“添加權限”按鈕。
這將帶您進入“權限”窗口
從權限下拉列表框中選擇“所有權限”。
然后單擊“確定”。
現在再次按下Policy Entry窗口中的“Add Permission”按鈕。
現在從權限下拉列表框中選擇“選擇”RunTimepermission。現在在Target Name下拉列表框中選擇“accessClassInpackage”,在文本框中輸入accessClassInpackage.sun.jdbc.odbc
現在點擊“確定”。
現在單擊“Policy Entry”窗口中的“done”。
現在,在Policy Entry窗口文件中 - > save將其保存在Java安裝的“bin”中。 記住這個名字...比如說.. appletpermission'save'
現在您有一個用於訪問的已創建策略文件
現在在命令提示符下編譯您的java文件
javac programname.java
要運行程序,請在cmd提示符下鍵入以下內容:
appletviewer -J-Djava.security.policy=appletpermission programname.java
現在一切都完成了。
不要浪費你的語法時間,而是使用政策工具:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.