gpt4 book ai didi

Java.util.PropertyPermission 失败

转载 作者:行者123 更新时间:2023-11-30 03:40:32 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的 Java Web Start 应用程序。我在 NetBeans 中编写了我的代码并使用 jar为我的 .jnlp 导出文件。最终我计划从 Windows 注册表中读取代码并使用该数据,但现在我所做的只是创建一个 String然后调用System.out.println(strName);我使用概述的策略对 jar 进行自签名 here 。当我下载并运行 .jnlp ,我收到以下异常:

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "jna.debug_load" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at java.lang.Boolean.getBoolean(Unknown Source)
at com.sun.jna.Native.<clinit>(Native.java:95)
at com.sun.jna.Pointer.<clinit>(Pointer.java:41)
at com.sun.jna.platform.win32.WinReg$HKEY.<init>(WinReg.java:32)
at com.sun.jna.platform.win32.WinReg.<clinit>(WinReg.java:61)
at cvbxtractor.CvbXtractor.main(CvbXtractor.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

我尝试添加 permission java.util.PropertyPermission "jna.debug_load", "read";给我的java.policy文件,我已尝试签署和辞职任何 jars它可能正在使用,并确保我的 .jnlp

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

行,但没有任何帮助。我确信我只是在某个地方缺少一些安全开关,如果这很容易,请原谅我,这是我的第一个 Java Web Start 应用程序。

最佳答案

从 java 7u45 开始,从 jnlp 运行时无法读取系统属性。 Oracle 基本上毁掉了 javaws。如果您正在编写一个新应用程序,我建议您远离 java webstart。它已经坏了,他们只是通过强制安全更新来破坏您的应用程序,从而使情况变得更糟。

话虽如此,此问题的一个部分解决方法是为所有属性添加 jnlp. 前缀。因此,您必须将属性重命名为jnlp.jna.debug_load。如果它是您正在使用的第三方库/jar 的属性,那么您就不走运了。

关于Java.util.PropertyPermission 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com