gpt4 book ai didi

Java Web Start 在 java 版本 7u45 (NPE) 之后不起作用

转载 作者:行者123 更新时间:2023-12-01 13:55:50 25 4
gpt4 key购买 nike

我们的 java 应用程序是通过 java web start(使用 glassfish 4.0)启动的。更新到java 7u45后就不行了。这是错误消息:

java.lang.NullPointerException
at java.io.StringReader.<init>(Unknown Source)
at org.glassfish.appclient.client.JWSAppClientContainerMain.insertMaskingLoader(JWSAppClientContainerMain.java:186)
at org.glassfish.appclient.client.JWSAppClientContainerMain.main(JWSAppClientContainerMain.java:132)
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)

下载完成后就会发生这种情况。快速查看 GF 源文件后,似乎没有定义属性 loader.config,因为第二行抛出了 NPE:

final String loaderConfig = System.getProperty("loader.config");
StringReader sr = new StringReader(loaderConfig);

编辑发生 NPE 的上述两行代码是 Glassfish 代码,来自 jar gf-client-module.jar 中的类 JWSAppClientContainerMain。它一直有效到 java 更新 45。

最佳答案

从更新 45 开始,JavaWebstart 将不再向您的应用程序传递不安全的属性。所有不以 jnlpjavaws 为前缀的属性都被视为不安全。

您需要将 loader.config 更改为 jnlp.loader.config(在 JNLP 和 Java 代码中),或者您需要签署JNLP(将您的 JNLP 的精确副本放在JNLP-INF/APPLICATION.JNLP 在您的 jar 中并对该 jar 进行签名)。

根据this OpenJDK Bugreport这是为了解决安全问题而有意进行的更改漏洞

关于Java Web Start 在 java 版本 7u45 (NPE) 之后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634899/

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