簡體   English   中英

.java.policy文件和本地applet

[英].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";
};

這是使用此配置運行:

  • Firefox 3.6.10
  • Java 1.6更新25
  • Windows 7 64位

我在哪里設置這個.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM