【问题标题】:Can't get applet to read text file无法让小程序读取文本文件
【发布时间】:2013-04-21 18:01:55
【问题描述】:

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

【问题讨论】:

    标签: java permissions policy


    【解决方案1】:

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

    未签名的小程序仅限于安全沙箱, 并且仅在用户接受小程序时运行。已签名的小程序 通过认可的证书颁发机构的证书可以 仅在沙箱中运行,或者可以请求在沙箱之外运行的权限 沙盒。无论哪种情况,用户都必须接受小程序的安全性 证书,否则小程序将被阻止运行。

    后来它指出:

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

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

    要了解如何签署 Applet,请看这里:How to Sign Applets Using RSA-Signed Certificates

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-23
        相关资源
        最近更新 更多