无法获取applet来读取文本文件

时间:2013-04-27 18:23:31

标签: java permissions policy

我试图让我的Java Applet从我的文本文件中读取,但是当我在浏览器中运行applet时,我没有足够的权限来读取文件。 我试图使用策略文件,但我似乎无法让它们工作。

我后来试过

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)

我可以通过哪些方式让我的applet在浏览器中运行?它在Eclipse的applet查看器中工作正常。

2 个答案:

答案 0 :(得分:2)

原因在What Applets Can and Cannot Do中指定。它明确规定:

  

未签名的小程序仅限于安全沙箱,   并且仅在用户接受applet时运行。签名的小程序   通过认可的证书颁发机构的证书也可以   仅在沙箱中运行,或者可以请求在外部运行的权限   沙箱。在任何一种情况下,用户都必须接受applet的安全性   证书,否则小程序将无法运行。

后来它说:

  

沙盒小程序无法执行以下操作:

     
      
  • 他们无法访问客户端资源,例如本地文件系统,可执行文件,系统剪贴板和打印机。
  •   
  • 他们无法连接或检索来自任何第三方服务器(除其来源的服务器以外的任何服务器)的资源。
  •   
  • 他们无法加载本机库。
  •   
  • 他们无法更改SecurityManager。
  •   
  • 他们无法创建ClassLoader。
  •   
  • 他们无法读取某些系统属性。有关禁用的系统属性列表,请参阅系统属性。
  •   

要了解如何在此处签署Applet:How to Sign Applets Using RSA-Signed Certificates

答案 1 :(得分:1)