自Oracle启动Java 7 Update 25以来,我们的应用程序不再起作用。
最初,我们收到了一些有关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的连接))有关吗?
由于Oracle发布了Java7Update25,我们的应用程序不再运行。 最初我们得到了一些关于代码库的警告 我们现在遇到的问题是,在控制台中,我们只得到以下行: 我们还会得到一个应用程序错误对话框,其中包含消息:无法启动应用程序。 “详细信息”按钮在异常中提供以下详细信息: 相关代码部分包括: (最后一行是第139行) (最后一行是发生异常的第24行) 有人能给我们一些提示(或者更好的解决方案
需要帮助...我在这里做错了什么???我相信它确实从应用程序属性文件中读取路径和文件名。但我不认为它读取了logback.xml或logback-spring.xml 我做了一些研究,发现了许多问题/答案。但是我想每个人都说要把logback xml放在资源中,把路径和文件名放在application.properties.我知道这很简单,但是在某个地方遗漏了一些东西… 提前谢谢!! 应用程序属性
我有一个标准的Spring Boot微服务,它使用Log4j2进行所有日志记录。 我想优雅地关闭spring boot应用程序,以防日志记录失败(例如磁盘已满)。有办法设置吗?
我们如何区分哪个日志来自哪个应用程序,是否想把所有日志混在一个地方? 我们有一个现有的应用程序,并且在整个应用程序中有几个log语句,这就是我们选择Log4Net appender来了解应用程序的原因。
本文向大家介绍Powershell使用WINDOWS事件日志记录程序日志,包括了Powershell使用WINDOWS事件日志记录程序日志的使用技巧和注意事项,需要的朋友参考一下 通常,人们使用基于文件的日志。这样做没有什么问题,但是使用WINDOWS提供系统内部日志会更加简单。 如果你有管理权限,你可以随时创建一个新的日志: 该命令创造了一个名为Mylog的日志,这个事件源自”JobDUE”,”