[英]not able load log4j properties file in Java webstart - Java 7u45
[英]Java 7u45 - java webstart doesn't download my jar and execute application unless i show java console
首先,对不起我的英语,这不是我的母语。
我的环境有:
-jre 1.5.0_12(二进制)
-jre 1.6.0_17(默认jre)
-jre 1.7.0_45(二进制)
我有2种方法通过Java Webstart启动应用程序:
1) \\\\<network filesystem>\\javaws-1.5.0_12.exe \\\\<network filesystem>\\urClient-DAP2.jnlp
2) "C:\\Program Files\\Java\\jre1.5.0_12\\bin\\javaws.exe" "http://some-server.com/EU10.jnlp"
在安装Java 1.7之前,没有问题。
但是由于我安装了JRE 1.7(仅二进制文件,并在regedit中注册),所以第二种方法不希望下载JAR并执行应用程序。 我只有Java启动画面-出现“ Java loading”,然后在大约20秒后消失。
我发现了两种解决方法 :
-禁用或卸载JRE 1.7
-或最怪异的方式:我启用Java控制台 ....( deployment.console.startup.mode=SHOW
)
我被困住了,这两种解决方法都不可行...
编辑:在javaws跟踪中,我得到了这个异常:
`Exception in thread "javawsApplicationMain" java.lang.NullPointerException
at javax.swing.SwingUtilities.appContextGet(Unknown Source)
at javax.swing.UIManager.getLAFState(Unknown Source)
at javax.swing.UIManager.maybeInitialize(Unknown Source)
at javax.swing.UIManager.getLookAndFeel(Unknown Source)
at com.sun.deploy.util.DeployUIManager.setLookAndFeel(Unknown Source)
at com.sun.javaws.ui.DownloadWindow.buildIntroScreen(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)`
编辑2:我发现通过网络文件或http运行之间的区别:
通过HTTP(不下载jar):
cache: User cache dir = C:\\Documents and Settings\\U01E519\\Application Data\\Sun\\Java\\Deployment\\cache\\javaws cache: System cache dir = C:\\Program Files\\Java\\jre1.5.0_12\\cache\\javaws cache: Muffin Cache = C:\\Documents and Settings\\U01E519\\Application Data\\Sun\\Java\\Deployment\\cache\\javaws\\muffins basic: Java part started basic: jnlpx.jvm: C:\\Program Files\\Java\\jre1.7.0_45\\bin\\javaw.exe basic: jnlpx.splashport: 3611 basic: jnlpx.remove: false basic: jnlpx.heapsize: NULL,NULL
通过网络文件(下载jar并启动应用程序):
cache: User cache dir = C:\\Documents and Settings\\U01E519\\Application Data\\Sun\\Java\\Deployment\\cache\\javaws cache: System cache dir = C:\\Program Files\\Java\\jre1.5.0_12\\cache\\javaws cache: Muffin Cache = C:\\Documents and Settings\\U01E519\\Application Data\\Sun\\Java\\Deployment\\cache\\javaws\\muffins basic: Java part started basic: jnlpx.jvm: C:\\Program Files\\Java\\jre1.5.0_12\\bin\\javaw.exe basic: jnlpx.splashport: 3831 basic: jnlpx.remove: true basic: jnlpx.heapsize: 64m,256m
参数jnlpx.jvm是不同的,我不知道为什么当我尝试通过http访问jnlp时,jvm是1.7,我想改用1.5。
编辑3:我现在用蝙蝠运行java web start来解决编辑2的问题:
`@echo off
set JRE_HOME="C:\Program Files\Java\jre6"
echo %JRE_HOME%
set ARG=%ARG% -Xbootclasspath/a:%JRE_HOME%\lib\javaws.jar;%JRE_HOME%\lib\deploy.jar
set ARG=%ARG% -classpath %JRE_HOME%\lib\deploy.jar
set ARG=%ARG% -Djnlpx.home=%JRE_HOME%\bin
set ARG=%ARG% -Djnlpx.slashport=1322
set ARG=%ARG% -Djnlpx.jvm=%JRE_HOME%\bin\javaw.exe
set ARG=%ARG% -Djnlpx.remove=false
echo %ARG%
%JRE_HOME%\bin\javaw.exe %ARG% com.sun.javaws.Main "PRC_ApplicationInstruction1.6.jnlp"`
并且在JNLP文件中,切勿使用<j2se version="1.6+">
但使用<j2se version="1.6">
提前致谢。
== 步骤1
您的问题仅来自Java 7u45安全性。 首先,尝试将此属性添加到您的jars中:
Permissions: all-permissions
Codebase: *
Trusted-Library: true
这可能就足够了,并且会清除安全警告。
== 步骤2
如果还不够:除非对JNLP进行了签名(即:Eclipse RCP中的osgi bundle-list),否则7u45不会将非安全属性传输到您的应用程序。 因此,请尝试签署您的JNLP。
== 步骤3
如果您不能对JNLP签名^^您可以通过在名称的开头添加“ jnlp”到所有属性,将非安全属性转换为安全属性
关于该缺陷的Oracle文档: http : //docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/settingArgsProperties.html
最后,我以这种方式解决了所有问题:
我用bat运行java web start:
`@echo off
set JRE_HOME="C:\Program Files\Java\jre6"
echo %JRE_HOME%
set ARG=%ARG% -Xbootclasspath/a:%JRE_HOME%\lib\javaws.jar;%JRE_HOME%\lib\deploy.jar
set ARG=%ARG% -classpath %JRE_HOME%\lib\deploy.jar
set ARG=%ARG% -Djnlpx.home=%JRE_HOME%\bin
set ARG=%ARG% -Djnlpx.slashport=1322
set ARG=%ARG% -Djnlpx.jvm=%JRE_HOME%\bin\javaw.exe
set ARG=%ARG% -Djnlpx.remove=false
echo %ARG%
%JRE_HOME%\bin\javaw.exe %ARG% com.sun.javaws.Main "PRC_ApplicationInstruction1.6.jnlp"`
并且在JNLP文件中,切勿使用<j2se version="1.6+">
但使用<j2se version="1.6">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.