我无法使用“Java Web Start”启动JNLP应用程序?

时间:2009-12-16 06:18:14

标签: java jnlp java-web-start

直到最近,我才能使用 Java web start Firefox 中启动/打开 JNLP 文件。

不知道突然发生了什么 JNLP 文件停止启动,出现了一个闪屏,说 Java Starting ... 然后什么也没发生。甚至浏览器中的 Java控制台 javacpl.cpl 小程序也无法打开。

尝试了所有可能性:删除了所有旧版本并安装了最新版本的JRE(java版本“1.6.0_17”),但它仍无效。

在这个问题上做了一些谷歌搜索,人们建议用 -viewer 选项启动 javaws.exe 但行为相同(出现了一个闪屏,说“Java Starting ... “然后消失了”

问题是我不知道任何地方(日志等)要查找导致问题的原因。

我正在使用WinXP SP3,下面的一些屏幕截图显示了有关我的系统的更多信息。 如果需要,我可以提供任何其他细节,但请帮助我解决这个问题。

16 个答案:

答案 0 :(得分:11)

看看如果直接从命令行运行javaws.exe会发生什么。

答案 1 :(得分:9)

我知道这是一个较老的问题但是在上周我开始遇到类似的问题,所以我在这里留下一些关于适合我的解决方案的说明。

这种情况仅发生在某些Windows机器中,甚至使用了迄今为止的最后一个JRE(1.8.0_45)。

Java Web Start开始加载但没有任何事情发生,以前的解决方案都没有奏效。

经过一番挖掘,我发现了这个线程,它给出了相同的设置和一个很好的解释。

https://community.oracle.com/thread/3676876

因此,总而言之,这是x86 JRE中的内存问题,并且由于我们的JNLP最大堆定义为1024MB,我们根据建议更改为780MB,并且已修复。

但是,如果您需要超过780MB,可以尝试在x64 JRE版本中启动。

答案 2 :(得分:8)

我在这里遇到了同样的问题。转到你的java控制面板和设置...取消选中'保留我的计算机上的临时互联网文件'。应用更改并再次尝试.jnlp

注意:在不同的机器上测试; Windows Server 2012,Windows Server 2008和Windows 7 64位。 Java版本:1.7 ++,因为我的jnlp应用程序是基于1.7构建的

请告诉我您的反馈意见。 :d

答案 3 :(得分:3)

虽然这个问题有点旧,但问题是由损坏的ClearType注册表设置引起的,并通过修复它来解决,如此ClearType, install4j and case of Java bug帖子中所述。

  

ClearType,install4j和Java bug Java

的案例      你知道吗?   ClearType(Windows中的字体平滑技术)与此有共同之处   Java(编程语言和推荐的框架之一)?

     

除了他们正在努力创造我之外什么都没有   悲惨几个月。我有一些我不能的Java软件   安装。我的意思是真的不能 - 甚至不知道理由或   在另一台PC上重现它。

     

最近我被批准用于Woopra beta(网站分析服务)和   它使用用Java编写的桌面客户端...我无法安装。得到了   我真的很生气。 :)

     

故事所有相关软件都是类似的:

     

基于install4j的设置;设置崩溃与一堆错误。我曾是   早期(大约一百个)试图解决安装install4j   问题。后来我慢慢明白,如果那是为了那个bug   很长时间 - 解决方案将被创建并用Google搜索。

     

跟踪从install4j转移焦点后,我决定推送Java   框架。我之前尝试过稳定的版本所以决定去   非稳定的1.6 Update 10候选版本。

     

这实际上修复了错误消息,但没有崩溃。我也注意到了   在安装文件的目录中创建了新的错误日志。   以前我只在Windows临时目录中看过日志。

     

新的错误日志如下:

     

无法显示GUI。此应用程序需要访问X.   服务器。如果您有访问权限,则可能缺少X库。   ************************************************** *****************您也可以在控制台模式下运行此应用程序而无需访问   X服务器通过传递参数-c非常奇怪地寻找X-Server   非Linux PC,不是吗?所以我决定尝试“-c”这个论点。和   实际上能够以控制台模式安装。

     

快乐的结局?不。现在安装的应用程序崩溃了。但它确实得到了   我想。如果控制台工作,但图形界面没有 - 那里   必须是后者的问题。

     

现在又说了一个错误日志(在应用程序文件夹中)   事情):

     

引起:java.lang.IllegalArgumentException:-60397977不兼容   使用特定于文本的LCD对比键成功搜索了我   Java无法读取非标准ClearType的bug的描述   注册表设置。

     

解决方案我立即从控制面板启动了ClearType Tuner   发现设置显示乱码。纠正之后   Java的所有问题都立即消失了。

     

cleartypetuner_screenshot经验教训不要快速责备   单一应用程序的软件问题。即使是轻微的,完全的   不相关的设置可能会发起致命的连锁反应。链接Jave   运行时环境http://www.java.com/en/download/index.jsp

     

ClearType Tuner   http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

     

Woopra http://www.woopra.com/

     

install4j   http://www.ej-technologies.com/products/install4j/overview.html

答案 4 :(得分:2)

我也遇到了同样的问题。要解决此问题,请执行以下步骤。

  1. 从cmd runnig javaws -viewer命令打开Javaws。将打开一个新窗口
  2. 选择所需的jnlp文件,然后单击“运行”按钮。
  3. 关闭javaws查看器窗口。

答案 5 :(得分:2)

应该启用Java Web Start。
检查javaws(系统已启用Java Web Start),在控制台中使用以下命令打开Java控制面板。

javaws -viewer

Image for your refrence

答案 6 :(得分:1)

如果javacpl没有打开并且给你找不到主类:,可能是因为deployment.properties的变化而导致Java混淆(可以在C:\Users\<username>\AppData\LocalLow\Sun\Java\Deployment on Win7中找到)。删除该文件,一切都很好。

这个错误似乎是6岁,cf。应用程序应该能够忽略已经过时的属性,不是吗?

答案 7 :(得分:1)

与hpereira建议的解决方案相同 该问题是由于JRE版本是32位而不是64位 检查java -version,看看您的Java是否为64位

C:\>java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) **64-Bit Server** VM (build 25.192-b12, mixed mode)

答案 8 :(得分:0)

这是您拥有代码的应用程序吗? Java 6u14包含了对它处理jar安全性的方式的改变,这对我们造成了非常类似的问题。如果您的jar已签名并使用Java 6u13或更低版本,您可能会考虑重构代码以解决此更新或需要Java 6u13或更低版本。不幸的是,我不记得我们为解决这个问题做了什么 - 当时是恐慌模式。

同样,如果你有代码,你可以使用工具。您可以在启动例程中放入System.out.println语句 - 当您从命令行运行JNLP时,在命令窗口中显示任何控制台输出。否则,您可能会考虑使用像log4j这样的优秀记录器来更好地了解故障点。

您也可以考虑完全删除该应用程序并重新下载。 Java Web Start有一个控制面板小程序,允许您查看应用程序正在下载的URL(可能是错误的),卸载应用程序,设置安全选项等。

答案 9 :(得分:0)

我遇到了完全相同的问题。原来,max-heap-size设置为1024并且缺少单位。配置必须是max-heap-size = 1024 m

因此,jnlp文件中显然无效的内存配置会导致这种行为。

答案 10 :(得分:0)

就我而言,问题是由公共桌面上的快捷方式启动我的应用程序引起的(Windows 7)。因此,据我所知,临时文件位置设置为c:\ users \ public \ etc。这导致无法写入缓存详细信息。当我在临时文件控制小程序中重置为默认值时,一切正常。

答案 11 :(得分:0)

在我的情况下,Netbeans会自动创建一个无效的.jnlp文件,我的问题是由于意外覆盖了服务器上的launch.jnlp文件(来自Netbeans的不充分和不正确的版本)。这导致本地.jnlp文件和远程.jnlp文件不匹配,导致Java Web Start在“验证应用程序”之后退出。

因此,没有其他人不得不浪费一个小时来发现一个应该由Java WS充分(但不是)传达的错误。

答案 12 :(得分:0)

This can also be due to environment variable CATALINA_HOME in your system. In our organization there were several cases where JNLP applications just refused to start without logging anything and emptying CATALINA_HOME solved the issue.

I had the environment variable set in the command prompt and it didn't appear in GUI. I'm not sure if setx command or register removal commands did the trick. Restart seems to be necessary after removing the variable.

答案 13 :(得分:0)

我认为这是一个安全问题。如果我下载了jnpl文件并在通过javaws myfile.jnpl进行了干净的Java 8安装后执行了该文件,则一切工作正常(我有多个窗口,必须确认一些安全问题)。

答案 14 :(得分:0)

我想分享我的问题的根本原因。我在Windows中使用High DPI,这导致JNLP无法启动。我必须关闭“高DPI”才能正常工作。希望这会有所帮助。

答案 15 :(得分:0)

尝试使用Java Web Launcher,而不是Java Web Start Launcher。它为我工作。