2013-04-27 46 views
0

我試圖讓我的Java小程序從我的文本文件中讀取,但是當我在瀏覽器中運行小程序時,我沒有足夠的privateleges來讀取文件。 我試圖使用策略文件,但我似乎無法讓他們工作。無法獲取小程序來讀取文本文件

後來我試着

System.setProperty("java.security.policy", "*filelocation*"); 

,但我得到這個錯誤

java.security.AccessControlException: access denied (java.util.PropertyPermission  java.security.policy write) 
at java.security.AccessControlContext.checkPermission(Unknown Source) 
at java.security.AccessController.checkPermission(Unknown Source) 
at java.lang.SecurityManager.checkPermission(Unknown Source) 
at java.lang.System.setProperty(Unknown Source) 
at BIT.init(BIT.java:35) 
at sun.applet.AppletPanel.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

我能得到什麼方面,我的小應用程序在瀏覽器中運行?它在Eclipse的applet查看器中工作正常。

回答

2

原因在What Applets Can and Cannot Do內指定。它明確規定:

未簽名的小程序僅限於安全沙箱 ,並且僅在用戶接受小程序時才運行。通過來自認可證書頒發機構的證書籤署 的小程序可以只在沙箱中運行,也可以請求在沙箱外運行的權限。無論哪種情況,用戶都必須接受該小程序的安全 證書,否則該小程序將被阻止運行。

後來它指出:

沙箱的小程序無法執行以下操作:

  • 他們不能訪問客戶端資源,如本地文件系統,可執行文件,系統剪貼板和打印機。
  • 他們無法連接到任何第三方服務器或從任何第三方服務器檢索資源(除了源自它的服務器以外的任何服務器)。
  • 它們無法加載本機庫。
  • 他們不能更改SecurityManager。
  • 他們無法創建ClassLoader。
  • 他們無法讀取某些系統屬性。請參閱系統屬性以獲取禁用系統屬性的列表。

瞭解如何在這裏簽字Applet的樣子:How to Sign Applets Using RSA-Signed Certificates

1