我试图让我的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查看器中工作正常。
答案 0 :(得分:2)
原因在What Applets Can and Cannot Do中指定。它明确规定:
未签名的小程序仅限于安全沙箱, 并且仅在用户接受applet时运行。签名的小程序 通过认可的证书颁发机构的证书也可以 仅在沙箱中运行,或者可以请求在外部运行的权限 沙箱。在任何一种情况下,用户都必须接受applet的安全性 证书,否则小程序将无法运行。
后来它说:
沙盒小程序无法执行以下操作:
- 他们无法访问客户端资源,例如本地文件系统,可执行文件,系统剪贴板和打印机。
- 他们无法连接或检索来自任何第三方服务器(除其来源的服务器以外的任何服务器)的资源。
- 他们无法加载本机库。
- 他们无法更改SecurityManager。
- 他们无法创建ClassLoader。
- 他们无法读取某些系统属性。有关禁用的系统属性列表,请参阅系统属性。
要了解如何在此处签署Applet:How to Sign Applets Using RSA-Signed Certificates
答案 1 :(得分:1)
你真的应该考虑签署小程序。
这个(简短!)FAQ讨论了政策和签名:
这是官方文件:
http://docs.oracle.com/javase/6/docs/technotes/guides/security/doprivileged.html
http://docs.oracle.com/javase/tutorial/deployment/applet/security.html
这是一个很好的(尽管是旧的)教程: