0

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

后来我试过

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 的小程序查看器中运行良好。

4

2 回答 2

2

原因在小程序可以做什么和不能做什么中指定。它明确规定:

未签名的小程序仅限于安全沙箱,只有在用户接受小程序时才运行。由公认证书颁发机构颁发的证书签名的小程序可以仅在沙箱中运行,也可以请求在沙箱外运行的权限。在任何一种情况下,用户都必须接受小程序的安全证书,否则小程序将被阻止运行。

后来它指出:

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

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

要了解如何签署 Applet,请查看此处:如何使用 RSA 签名证书签署 Applet

于 2013-04-27T18:28:55.423 回答
1

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

这个(简短的!)常见问题解答讨论了政策和签名:

这是官方文档:

这是一个很好的(虽然很旧)教程:

于 2013-04-27T18:29:03.473 回答