不能让小程序来读取文本文件(Can't get applet to read text fi

2019-09-01 06:35发布

我一直试图让我的Java小程序,从我的文本文件阅读,但我没有足够的privaleges读取文件时,我在浏览器中运行的小程序。 我曾尝试使用的政策文件,但我似乎无法让他们的工作。

后来我试着

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浏览器工作正常。

Answer 1:

其原因是中指定什么Applet可以和不能做什么 。 它明确规定:

未签名的小程序被限制在安全沙箱中,并且仅当用户接受小程序运行。 由从公认的证书颁发机构的证书签名的小程序可以只在沙箱中运行,也可以请求对沙箱之外运行的权限。 在这两种情况下,用户必须接受小程序的安全证书,否则小程序运行受阻。

后来,它指出:

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

  • 他们不能访问客户端资源,如本地文件系统,可执行文件,系统剪贴板和打印机。
  • 他们无法连接到或任何第三方服务器(比它的起源服务器以外的任何服务器)检索资源。
  • 他们不能加载本地库。
  • 他们不能改变的SecurityManager。
  • 他们不能创建一个ClassLoader。
  • 他们无法读取某些系统属性。 请参阅系统属性禁止系统属性的列表。

要了解如何在这里签字Applet的样子: 如何applet的签名使用RSA签名证书



Answer 2:

你真的应该考虑签署小程序。

这(!短)常见问题讨论这两种政策和签名:

  • http://www.coderanch.com/how-to/java/HowCanAnAppletReadFilesOnTheLocalFileSystem

这里是offician文档:

  • http://docs.oracle.com/javase/6/docs/technotes/guides/security/doprivileged.html

  • http://docs.oracle.com/javase/tutorial/deployment/applet/security.html

这里是一个很好的(尽管旧)教程:

  • http://faculty.kutztown.edu/spiegel/CSc421/SigningAnApplet.htm


文章来源: Can't get applet to read text file