程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录?

开发过程中遇到Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录的问题如何解决?下面主要结合日常开发的经验,给出你关于Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录的解决方法建议,希望对你解决Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录有所启发或帮助;

最终问题解决了。该问题是由于MANIFEST.MF主文件中包含的jar文件与launch.jnlp中提到的jar文件之间的不匹配引起的。

显然,现在要求所有将要使用的jar文件也必须存在于launch.jnlp文件中。

(过去决定手动将此文件保存在接收器中,显然,该文件并不总是以适当的方式进行维护。现在,此过程是自动化的,因此问题不再发生在我们身上。)

解决方法

Oracle启动Java 7 update 25以来,@R_851_9616@程序不再起作用。

最初,我们收到了一些有关Manifest文件中缺少代码库和安全性标签的警告,我们已对其进行了修复。

我们现在遇到的问题是,在控制台中,我们仅获得以下几行:

#### Java Web Start Error:
#### null

我们还会收到带有错误消息的应用程序错误对话框: 无法启动应用程序

详细信息按钮在例外中提供以下详细信息:

java.lang.NullPointerException
    at com.sun.jnlp.JNLPClassLoader.getPermissions(Unknown sourcE)
    at java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:206)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doprivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown sourcE)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at desktop.DesktopProxySELEctor.<init>(DesktopProxySELEctor.java:24)     <- code smippet below
    at desktop.Main.main(Main.java:139)                                      <- code smippet below
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegaTingMethodAccessorImpl.invoke(DelegaTingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    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(Thread.java:724)

相关代码部分为:

Desktop.Main.main

/**
 * Main method,starts the application
 */
public static void main(String[] args) {
    System.setProperty("java.net.useSystemProxies","true");

    //Logger.getLogger("httpclient.wire.header.level").setLevel(Level.FInesT);
    //Logger.getLogger("org.apache.commons.httpclient.level").setLevel(Level.FInesT);
    java.net.ProxySELEctor.setDefault(new DesktopProxySELEctor(java.net.ProxySELEctor.getDefault()));

(最后一行是行号139)

desktop.DesktopProxySELEctor:

public class DesktopProxySELEctor extends ProxySELEctor {

    public  DesktopProxySELEctor(ProxySELEctor defaultSELEctor) {
    URI httpsUri = new CentralConfigurationservice().getCentralLOCATIOn();

(最后一行是发生异常的第24行)

有人可以给我们一些线索提示(或更好的解决方案)来说明由此“次要”更新引起的Java新行为。

当我们使用java -jar Desktop.jar从cli直接运行该应用程序时,该应用程序将运行文件,因此该问题显然与Java Web
Start中的更改有关。

@trashgod:该错误显然与7u25中的Permissions更改有关,因为NullPointerException发生在com.sun.jnlp.JNLPClassLoader.getPermissions中。

只是为了解释我的想法(我是Wouter的同事):desktop.Main实例化一个desktop.DesktopProxySELEctor(我们的类),desktop.DesktopProxySELEctor实例化desktop.configuration.CentralConfigurationservice
desktop.configuration.CentralConfigurationservice实例化一个java.net.URI 。

在实例化CentralConfigurationservice的DesktopProxySELEctor初始化的第一行,由JNLPClassLoader调用的getPermissions方法抛出NullPointerException。因此,通过java
webstart加载CentralConfigurationservice类并获得该类的权限时出了点问题。可能与URI类实例化(这需要额外的权限(已建立到远程uri的连接))有关吗?

大佬总结

以上是大佬教程为你收集整理的Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录全部内容,希望文章能够帮你解决Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。