对于想了解在JavaWebstart应用程序中从Jar获取资源的读者,本文将提供新的信息,我们将详细介绍java从jar包中获取文件,并且为您提供关于32位Windows7上的Java7–JavaWe
对于想了解在Java Webstart应用程序中从Jar获取资源的读者,本文将提供新的信息,我们将详细介绍java从jar包中获取文件,并且为您提供关于32位Windows 7上的Java 7 – Java Webstart – 无法加载资源、Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录、Java Web Start / JNLP应用程序的jar文件在哪里缓存?、Java Webstart在启动应用程序之前停止的有价值信息。
本文目录一览:- 在Java Webstart应用程序中从Jar获取资源(java从jar包中获取文件)
- 32位Windows 7上的Java 7 – Java Webstart – 无法加载资源
- Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录
- Java Web Start / JNLP应用程序的jar文件在哪里缓存?
- Java Webstart在启动应用程序之前停止
在Java Webstart应用程序中从Jar获取资源(java从jar包中获取文件)
我正在尝试在Java Webstart应用程序中加载许多资源。
我最初尝试使用以下命令加载这些文件:
ClassLoader loader = MyClass.class.getClassLoader();
URL url = loader.getResource("resourceName");
File file = new File(url.toURI());
但这没有用-它引发了IllegalArgumentException。进一步的研究表明,该方法不适用于从jar文件访问资源,因此我需要使用以下方法:
ClassLoader loader = MyClass.class.getClassLoader();
InputStream in = loader.getResourceAsStream("resourceName");
但是,当我从Jnlp使用它运行时,得到奇怪的结果。如果我运行以下命令:
public static void main(String[] args) throws IOException,URISyntaxException {
ClassLoader loader = MyClass.class.getClassLoader();
String r = "resourceName";
URL url = loader.getResource(r);
System.out.println(url!=null);
InputStream in = loader.getResourceAsStream(r);
System.out.println(in!=null);
}
在我的IDE中,我得到了对与错(正如我期望的那样)。从jnlp运行,URL为true,但InputStream为false。
关于我可能做错了什么的任何想法?是否有更好的方式来装载资源以供Java Webstart应用程序使用?
编辑:有关信息,我的资源位于MyProject / src / main / resources中,并且在生成jar时,资源位于jar根目录中。
32位Windows 7上的Java 7 – Java Webstart – 无法加载资源
我无法在32位Windows 7系统上启动任何java webstart应用程序.
例如. ArgoUML – http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp
使用Java 6,一切正常,但是使用Java 7,我遇到了这样的错误:
Unable to load resource: java.io.IOException: Error writing to
server or java.net.socketException: Connection reset
Java version: Java Web Start 10.7.2.11 Using JRE version 1.7.0_07-b11 Java HotSpot(TM) Client VM
这是跟踪日志:
Log started: pe,21 syys 2012 21:04:19 +0300 basic: Java part started basic: jnlpx.jvm: C:\Program Files\Java\jre7\bin\javaw.exe basic: jnlpx.splashport: 52540 basic: jnlpx.remove: true basic: jnlpx.heapsize: NULL,512m network: Loading user-defined proxy configuration ... network: Done. network: browser is ChromeHTML network: browser is IE network: Loading proxy configuration from Internet Explorer ... network: Done. network: Loading direct proxy configuration ... network: Done. network: Proxy Configuration: No proxy security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils. security: property package.access new value sun.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws security: property package.access value sun.,com.sun.javaws security: property package.access new value sun.,com.sun.javaws,com.sun.deploy security: property package.access value sun.,com.sun.deploy security: property package.access new value sun.,com.sun.deploy,com.sun.jnlp security: property package.deFinition value sun.,com.sun.org.apache.xalan.internal.utils. security: property package.deFinition new value sun.,com.sun.javaws security: property package.deFinition value sun.,com.sun.javaws security: property package.deFinition new value sun.,com.sun.deploy security: property package.deFinition value sun.,com.sun.deploy security: property package.deFinition new value sun.,com.sun.jnlp security: property package.access value sun.,com.sun.jnlp security: property package.access new value sun.,com.sun.jnlp,org.mozilla.jss security: property package.deFinition value sun.,com.sun.jnlp security: property package.deFinition new value sun.,org.mozilla.jss basic: Running JVMParams: [JVMParameters: isSecure: true,args: -Xmx512m] -> [JVMParameters: isSecure: true,args: -Xmx512m] network: Created version ID: 1.7.0.07 network: Created version ID: 1.7 network: Created version ID: 2.2.1 temp: new XMLParser with source: temp: <?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for launching ArgoUML with WebStart --> <jnlp spec="1.0+" codebase="http://argouml-downloads.tigris.org/maven2" href="http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp"> <information> <title>ArgoUML Latest Stable Release 0.34</title> <vendor>Tigris.org (Open Source)</vendor> <homepage href="http://argouml.tigris.org/"/> <description>ArgoUML application. This is the latest stable release. </description> <description kind="short">ArgoUML 0.34</description> <icon href="http://argouml.tigris.org/images/argologo16x16.gif" width="16" height="16" /> <icon href="http://argouml.tigris.org/images/argologo32x32.gif" width="32" height="32" /> <icon href="http://argouml.tigris.org/images/argologo64x64.gif" width="64" height="64" /> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.6+" max-heap-size="512m"/> <jar href="http://argouml-downloads.tigris.org/maven2/antlr/antlr/2.7.7-3/antlr-2.7.7-3.jar"/> .... <property name="argouml.modules" value=";org.argouml.state2.StateDiagramModule;org.argouml.sequence2.SequenceDiagramModule;org.argouml.activity2.ActivityDiagramModule;org.argouml.core.propertypanels.module.XmlPropertyPanelsModule;org.argouml.transformer.TransformerModule;org.argouml.language.cpp.generator.ModuleCpp;org.argouml.language.cpp.notation.NotationModuleCpp;org.argouml.language.cpp.profile.ProfileModule;org.argouml.language.cpp.reveng.CppImport;org.argouml.language.cpp.ui.SettingsTabCpp;org.argouml.language.csharp.generator.GeneratorCSharp;org.argouml.language.java.cognitive.critics.InitJavaCritics;org.argouml.language.java.generator.GeneratorJava;org.argouml.language.java.profile.ProfileJava;org.argouml.language.java.reveng.Javaimport;org.argouml.language.java.reveng.classfile.ClassfileImport;org.argouml.language.java.ui.JavaTools;org.argouml.language.java.ui.SettingsTabJava;org.argouml.language.PHP.generator.ModulePHP4;org.argouml.language.PHP.generator.ModulePHP5;org.argouml.language.sql.sqlInit;org.argouml.uml.reveng.classfile.ClassfileImport;org.argouml.uml.reveng.idl.IDLFileImport" /> </resources> <application-desc main-/> </jnlp> temp: returning ROOT as follows: <jnlp spec="1.0+" codebase="http://argouml-downloads.tigris.org/maven2" href="http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp"> <information> <title>ArgoUML Latest Stable Release 0.34</title> <vendor>Tigris.org (Open Source)</vendor> <homepage href="http://argouml.tigris.org/"/> <description>ArgoUML application. This is the latest stable release. </description> <description kind="short">ArgoUML 0.34</description> <icon href="http://argouml.tigris.org/images/argologo16x16.gif" width="16" height="16"/> <icon href="http://argouml.tigris.org/images/argologo32x32.gif" width="32" height="32"/> <icon href="http://argouml.tigris.org/images/argologo64x64.gif" width="64" height="64"/> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.6+" max-heap-size="512m"/> <jar href="http://argouml-downloads.tigris.org/maven2/antlr/antlr/2.7.7-3/antlr-2.7.7-3.jar"/>... <property name="argouml.modules" value=";org.argouml.state2.StateDiagramModule;org.argouml.sequence2.SequenceDiagramModule;org.argouml.activity2.ActivityDiagramModule;org.argouml.core.propertypanels.module.XmlPropertyPanelsModule;org.argouml.transformer.TransformerModule;org.argouml.language.cpp.generator.ModuleCpp;org.argouml.language.cpp.notation.NotationModuleCpp;org.argouml.language.cpp.profile.ProfileModule;org.argouml.language.cpp.reveng.CppImport;org.argouml.language.cpp.ui.SettingsTabCpp;org.argouml.language.csharp.generator.GeneratorCSharp;org.argouml.language.java.cognitive.critics.InitJavaCritics;org.argouml.language.java.generator.GeneratorJava;org.argouml.language.java.profile.ProfileJava;org.argouml.language.java.reveng.Javaimport;org.argouml.language.java.reveng.classfile.ClassfileImport;org.argouml.language.java.ui.JavaTools;org.argouml.language.java.ui.SettingsTabJava;org.argouml.language.PHP.generator.ModulePHP4;org.argouml.language.PHP.generator.ModulePHP5;org.argouml.language.sql.sqlInit;org.argouml.uml.reveng.classfile.ClassfileImport;org.argouml.uml.reveng.idl.IDLFileImport"/> </resources> <application-desc main-/> </jnlp> temp: returning launchdesc from XMLFormat.parse(): <jnlp spec="1.0+" codebase="http://argouml-downloads.tigris.org/maven2/" href="http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp"> <information> <title>ArgoUML Latest Stable Release 0.34</title> <vendor>Tigris.org (Open Source)</vendor> <homepage href="http://argouml.tigris.org/"/> <description>ArgoUML application. This is the latest stable release. </description> <description kind="short">ArgoUML 0.34</description> <icon href="http://argouml.tigris.org/images/argologo16x16.gif" height="16" width="16" kind="default"/> <icon href="http://argouml.tigris.org/images/argologo32x32.gif" height="32" width="32" kind="default"/> <icon href="http://argouml.tigris.org/images/argologo64x64.gif" height="64" width="64" kind="default"/> <offline-allowed/> </information> <security> <all-permissions/> </security> <update check="timeout" policy="always"/> <resources> <java max-heap-size="536870912" version="1.6+"/> <jar href="http://argouml-downloads.tigris.org/maven2/antlr/antlr/2.7.7-3/antlr-2.7.7-3.jar" download="eager" main="false"/> ... <property name="argouml.modules" value=";org.argouml.state2.StateDiagramModule;org.argouml.sequence2.SequenceDiagramModule;org.argouml.activity2.ActivityDiagramModule;org.argouml.core.propertypanels.module.XmlPropertyPanelsModule;org.argouml.transformer.TransformerModule;org.argouml.language.cpp.generator.ModuleCpp;org.argouml.language.cpp.notation.NotationModuleCpp;org.argouml.language.cpp.profile.ProfileModule;org.argouml.language.cpp.reveng.CppImport;org.argouml.language.cpp.ui.SettingsTabCpp;org.argouml.language.csharp.generator.GeneratorCSharp;org.argouml.language.java.cognitive.critics.InitJavaCritics;org.argouml.language.java.generator.GeneratorJava;org.argouml.language.java.profile.ProfileJava;org.argouml.language.java.reveng.Javaimport;org.argouml.language.java.reveng.classfile.ClassfileImport;org.argouml.language.java.ui.JavaTools;org.argouml.language.java.ui.SettingsTabJava;org.argouml.language.PHP.generator.ModulePHP4;org.argouml.language.PHP.generator.ModulePHP5;org.argouml.language.sql.sqlInit;org.argouml.uml.reveng.classfile.ClassfileImport;org.argouml.uml.reveng.idl.IDLFileImport"/> </resources> <application-desc main-/> </jnlp> basic: new Launcher: <jnlp spec="1.0+" codebase="http://argouml-downloads.tigris.org/maven2/" href="http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp"> <information> <title>ArgoUML Latest Stable Release 0.34</title> <vendor>Tigris.org (Open Source)</vendor> <homepage href="http://argouml.tigris.org/"/> <description>ArgoUML application. This is the latest stable release. </description> <description kind="short">ArgoUML 0.34</description> <icon href="http://argouml.tigris.org/images/argologo16x16.gif" height="16" width="16" kind="default"/> <icon href="http://argouml.tigris.org/images/argologo32x32.gif" height="32" width="32" kind="default"/> <icon href="http://argouml.tigris.org/images/argologo64x64.gif" height="64" width="64" kind="default"/> <offline-allowed/> </information> <security> <all-permissions/> </security> <update check="timeout" policy="always"/> <resources> <java max-heap-size="536870912" version="1.6+"/> <jar href="http://argouml-downloads.tigris.org/maven2/antlr/antlr/2.7.7-3/antlr-2.7.7-3.jar" download="eager" main="false"/> .... <property name="argouml.modules" value=";org.argouml.state2.StateDiagramModule;org.argouml.sequence2.SequenceDiagramModule;org.argouml.activity2.ActivityDiagramModule;org.argouml.core.propertypanels.module.XmlPropertyPanelsModule;org.argouml.transformer.TransformerModule;org.argouml.language.cpp.generator.ModuleCpp;org.argouml.language.cpp.notation.NotationModuleCpp;org.argouml.language.cpp.profile.ProfileModule;org.argouml.language.cpp.reveng.CppImport;org.argouml.language.cpp.ui.SettingsTabCpp;org.argouml.language.csharp.generator.GeneratorCSharp;org.argouml.language.java.cognitive.critics.InitJavaCritics;org.argouml.language.java.generator.GeneratorJava;org.argouml.language.java.profile.ProfileJava;org.argouml.language.java.reveng.Javaimport;org.argouml.language.java.reveng.classfile.ClassfileImport;org.argouml.language.java.ui.JavaTools;org.argouml.language.java.ui.SettingsTabJava;org.argouml.language.PHP.generator.ModulePHP4;org.argouml.language.PHP.generator.ModulePHP5;org.argouml.language.sql.sqlInit;org.argouml.uml.reveng.classfile.ClassfileImport;org.argouml.uml.reveng.idl.IDLFileImport"/> </resources> <application-desc main-/> </jnlp> network: preparetoLaunch: offlineOnly=false network: Cache entry not found [url: http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp,version: null] network: Cache entry not found [url: http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp,version: null] network: Connecting http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp with proxy=DIRECT network: Connecting socket://argouml-downloads.tigris.org:80 with proxy=DIRECT network: Connecting socket://argouml-downloads.tigris.org:80 with proxy=DIRECT java.io.IOException: Error writing to server at sun.net.www.protocol.http.HttpURLConnection.writeRequests(UnkNown Source) at sun.net.www.protocol.http.HttpURLConnection.writeRequests(UnkNown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(UnkNown Source) at java.net.HttpURLConnection.getResponseCode(UnkNown Source) at com.sun.deploy.net.BasicHttpRequest.doRequest(UnkNown Source) at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(UnkNown Source) at com.sun.deploy.net.DownloadEngine.actionDownload(UnkNown Source) at com.sun.deploy.net.DownloadEngine._downloadCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResource(UnkNown Source) at com.sun.javaws.Launcher.updateFinallaunchdesc(UnkNown Source) at com.sun.javaws.Launcher.preparetoLaunch(UnkNown Source) at com.sun.javaws.Launcher.preparetoLaunch(UnkNown Source) at com.sun.javaws.Launcher.launch(UnkNown Source) at com.sun.javaws.Main.launchApp(UnkNown Source) at com.sun.javaws.Main.continueInSecureThread(UnkNown Source) at com.sun.javaws.Main.access$000(UnkNown Source) at com.sun.javaws.Main$1.run(UnkNown Source) at java.lang.Thread.run(UnkNown Source) network: Connecting http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp with proxy=DIRECT network: Connecting socket://argouml-downloads.tigris.org:80 with proxy=DIRECT network: Connecting socket://argouml-downloads.tigris.org:80 with proxy=DIRECT java.net.socketException: Connection reset at java.net.socketInputStream.read(UnkNown Source) at java.net.socketInputStream.read(UnkNown Source) at java.io.BufferedInputStream.fill(UnkNown Source) at java.io.BufferedInputStream.read1(UnkNown Source) at java.io.BufferedInputStream.read(UnkNown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(UnkNown Source) at sun.net.www.http.HttpClient.parseHTTP(UnkNown Source) at sun.net.www.http.HttpClient.parseHTTP(UnkNown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(UnkNown Source) at java.net.HttpURLConnection.getResponseCode(UnkNown Source) at com.sun.deploy.net.BasicHttpRequest.doRequest(UnkNown Source) at com.sun.deploy.net.BasicHttpRequest.doRequest(UnkNown Source) at com.sun.deploy.net.BasicHttpRequest.doGetRequest(UnkNown Source) at com.sun.deploy.net.DownloadEngine.actionDownload(UnkNown Source) at com.sun.deploy.net.DownloadEngine._downloadCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(UnkNown Source) at com.sun.deploy.cache.ResourceProviderImpl.getResource(UnkNown Source) at com.sun.javaws.Launcher.updateFinallaunchdesc(UnkNown Source) at com.sun.javaws.Launcher.preparetoLaunch(UnkNown Source) at com.sun.javaws.Launcher.preparetoLaunch(UnkNown Source) at com.sun.javaws.Launcher.launch(UnkNown Source) at com.sun.javaws.Main.launchApp(UnkNown Source) at com.sun.javaws.Main.continueInSecureThread(UnkNown Source) at com.sun.javaws.Main.access$000(UnkNown Source) at com.sun.javaws.Main$1.run(UnkNown Source) at java.lang.Thread.run(UnkNown Source) preloader: Construct preloader delegate network: Connecting socket://127.0.0.1:52540 with proxy=DIRECT #### Java Web Start Error: #### Unable to load resource: http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp
解决方案是添加:
< j2se version =“1.6.10”href =“http://java.sun.com/products/autodl/j2se”
java的VM-ARGS = “ – Djava.net.preferIPv4Stack =真”/>
(我还手动将java.exe和javaws.exe添加到Windows防火墙和F-Secure中的例外列表中.)
感谢Richard Conway:http://grokkingis.blogspot.fi/2012/08/work-arounds-windows-firewall-blocking.html?showComment=1349808752760#c2225417445483685032
Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录
自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的连接))有关吗?
答案1
小编典典最终问题解决了。该问题是由于MANIFEST.MF主文件中包含的jar文件与launch.jnlp中提到的jar文件之间的不匹配引起的。
显然,现在要求所有将要使用的jar文件也必须存在于launch.jnlp文件中。
(过去决定手动将此文件保存在接收器中,显然,该文件并不总是以适当的方式进行维护。现在,此过程是自动化的,因此问题不再发生在我们身上。)
Java Web Start / JNLP应用程序的jar文件在哪里缓存?
Java Web Start / JNLP应用程序的jar文件在哪里缓存?
Java Webstart在启动应用程序之前停止
启动应用程序会显示应用程序启动屏幕,但javaws进程会在对话框,java控制台或日志文件中没有显示任何错误消息后立即终止.似乎javaws在实际启动实际应用程序之前就停止了.
用户是否尝试从桌面快捷方式或从网页启动应用程序无关紧要.
在没有webstart的本地计算机上使用javaw运行时,相同的应用程序没有任何问题.
应用程序是签名应用程序(真实证书,而不是自签名应用程序),用户可以在桌面上使用应用程序的快捷方式. jnlp定义应用程序可以脱机运行,并且使用timeout -option进行update-check.服务器端使用jnl-servlet来提供正确的jar版本.
这个问题并不是每次都会发生,但如果启动失败就像这样一次,很可能(我们已经观察到大约90%的确定性)后续启动也会失败.重新启动计算机似乎没有帮助.该问题仅限于少数计算机.大多数用户(98%)没有这个问题.
所有失败的系统都在运行Windows 7 Pro. Java版本可能会有所不同,但一个例子是64位Java 1.8.0_60,Win7Pro,64位intel-i3处理器.
造成这类问题的原因是什么?任何有关解决问题的帮助都非常感谢.特别是因为似乎没有任何错误消息可用于帮助查明问题.
解决方法
作为解决方法,我们从JNLP中删除了doctype.
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems,Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
今天的关于在Java Webstart应用程序中从Jar获取资源和java从jar包中获取文件的分享已经结束,谢谢您的关注,如果想了解更多关于32位Windows 7上的Java 7 – Java Webstart – 无法加载资源、Java 7 update 25使我们的Java Web Start应用程序失败且没有日志记录、Java Web Start / JNLP应用程序的jar文件在哪里缓存?、Java Webstart在启动应用程序之前停止的相关知识,请在本站进行查询。
本文标签: