2012-01-13 55 views
2

這應該是一個相對簡單的修復,但我找不到如何使它工作。我創建了一個java applet,它在eclipse中運行時效果很好,不幸的是我無法在eclipse之外使用它。以下是錯誤的重要組成部分:獲取java.policy.applet在eclipse之外工作

Caused by: java.security.AccessControlException: access denied (java.io.FilePermission background.jpg read) 

我已經想通了,似乎也與政策的東西做的,但我不明白它不夠好,得到它的工作,我想。如果我把帶有applet標籤的html文件放在eclipse bin文件夾中,那麼它的功能非常好,但是如果我將該文件夾(包括java.policy.applet文件)中的所有內容複製到另一個文件夾,它會給出上述錯誤。

我花了幾個小時試圖弄清楚這一點,請大家幫忙!如果我可以告訴程序該文件的位置,因爲它似乎完全忽略了它。這是政策文件,並通過eclipse自動生成:

/* AUTOMATICALLY GENERATED ON Tue Apr 16 17:20:59 EDT 2002*/ 
/* DO NOT EDIT */ 

grant { 
    permission java.security.AllPermission; 
}; 
+0

你能後的一段代碼,你正在做的文件操作(打開圖像文件)在哪裏? – 2012-01-13 21:46:06

+0

這個'background.jpg'是在編譯的Java包嗎? – mKorbel 2012-01-13 21:47:07

回答

0

我在開發比利時電子身份證的小程序時遇到同樣的問題。對我來說,解決方案是創建一個自簽名JAR。我正在調查如何直接在Eclipse中執行此操作。 確保你的JDK是在您的路徑(這樣您就可以訪問以下工具),然後:

  • 密鑰工具-genkey -keystore yourKeyStoreFile -alias TOTO
  • 密鑰工具-selfcert -keystore yourKeyStoreFile -alias TOTO

這兩個命令創建密鑰和自簽名證書,只需要執行一次。然後,進行實際簽名的jar,使用:

  • 的jarsigner -keystore yourKeyStore jarfile.jar TOTO

希望這將有助於...

1

指定策略文件的位置,使用方法:

appletviewer -J-Djava.security.policy=file:///path/to/policy/file HTMLfile