【问题标题】:java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.com.sun.javafx.css.parser")java.security.AccessControlException:访问被拒绝(“java.lang.RuntimePermission”“accessClassInPackage.com.sun.javafx.css.parser”)
【发布时间】:2016-03-03 23:10:30
【问题描述】:

我正在使用 java web start 部署 Javafx 8 应用程序。当我尝试从依赖项 jar fontawesomefx-8.9.jar 访问任何类时出现此错误 如果我在代码中不使用任何 fontawesomefx-8.9 类,则应用程序可以正常工作。这种行为的可能原因是什么?

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.com.sun.javafx.css.parser")

【问题讨论】:

  • 我的应用程序 jar 和依赖项都已签名。但仍然看到错误。我们是否必须将任何密钥库文件复制到网络服务器?
  • 不,您不需要将密钥库文件放在服务器上。通常,在代码签名时,keystore 包含您的私钥,您在打包代码时只使用一次来对代码进行签名。签名验证的证书通常是embedded in the JNLP data for your application
  • 将以下行添加到 jnlp 使其工作。不确定这是否是理想的方式。
  • 可能没问题。通常 JNLP 文件是由 maven 或 ant 任务生成的,而不是手动编辑的,因此您通常不需要手动编辑 jnlp 来添加该信息。您可能不需要所有权限,但您确实需要一些额外的权限,所以实际上如果您要求所有权限而不仅仅是一些额外的权限,大多数用户不会在意。如果您将有关如何解决此问题的信息发布为self-answer,这可能是最好的。

标签: java-8 javafx-8 font-awesome java-web-start


【解决方案1】:

将以下行添加到 jnlp 文件为我解决了这个问题

<security>
<all-permissions/>
</security>

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2016-04-06
    • 2014-10-24
    相关资源
    最近更新 更多