繁体   English   中英

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

[英]I am not able launch JNLP applications using "Java Web Start"?

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

不知道发生了什么, JNLP文件突然停止启动,启动画面显示Java Starting...然后什么也没有发生。 即使是浏览器中的Java 控制台javacpl.cpl小程序也打不开。

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

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

问题是我不知道有什么地方(日志等)可以查找导致问题的原因。

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

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

我在这里遇到了同样的问题。 转到您的 Java 控制面板和设置...取消选中“在我的计算机上保留临时文件”。 应用更改并重试您的 .jnlp

Java 控制面板 - 在我的计算机上保留临时文件

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

也请让我知道您的反馈。 :D

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

这只发生在一些 Windows 机器上,甚至使用迄今为止的最后一个 JRE (1.8.0_45)。

Java Web Start 开始加载,但什么也没发生,之前的解决方案尝试都没有奏效。

经过一番挖掘,我找到了这个线程,它提供了相同的设置和很好的解释。

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

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

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

虽然这个问题有点老,但问题是由损坏的 ClearType 注册表设置引起的,并通过修复它来解决,如本ClearType、install4j 和 Java 错误帖子中所述。

ClearType、install4j 和 Java bug Java 案例

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

除了他们一起努力让我痛苦了几个月之外,别无他法。 我有一些无法安装的 Java 软件。 我的意思是真的不能 - 甚至无法找出原因或在另一台 PC 上重现它。

最近我获得了 Woopra beta(站点分析服务)的批准,它使用用 Java 编写的桌面客户端……我无法安装。 这让我真的很生气。 :)

故事 所有有问题的软件都是相似的:

基于 install4j 的设置; 设置因一堆错误而崩溃。 我在早期(大约数百次)尝试解决问题时指责 install4j。 后来我慢慢明白,如果它被窃听了很长时间——解决方案就会被创建和谷歌搜索。

跟踪 从 install4j 转移焦点后,我决定推动 Java 框架。 我之前尝试过稳定版本,因此决定使用非稳定版 1.6 Update 10 Release Candidate。

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

新的错误日志如下:

无法显示 GUI。 此应用程序需要访问 X 服务器。 如果您有权访问,则可能缺少 X 库。 ****************************************************** ***************** 您也可以通过传递参数 -c 在不访问 X 服务器的情况下以控制台模式运行此应用程序 在非 Linux 上查找 X-Server 非常奇怪电脑,不是吗? 所以我决定尝试使用“-c”参数。 并且实际上能够在控制台模式下安装。

圆满结局? 不。 现在安装的应用程序崩溃了。 但这确实让我思考。 如果控制台工作但图形界面不工作——后者肯定有问题。

另一个错误日志(在应用程序文件夹中)现在说(除其他外):

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

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

cleartypetuner_screenshot 经验教训 不要急于将软件问题归咎于单个应用程序。 即使是次要且完全不相关的设置也可能引发致命的连锁反应。 链接 Java 运行时环境http://www.java.com/en/download/index.jsp

ClearType 调谐器http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

伍普拉http://www.woopra.com/

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

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

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

如果 javacpl 没有打开并且给你找不到主类: ,那可能是因为deployment.properties(可以在C:\\Users\\<username>\\AppData\\LocalLow\\Sun\\Java\\Deployment on Win7 )。 删除该文件,一切正常。

这个错误似乎是 6 岁,参见 应用程序应该能够忽略随着时间的推移已经过时的属性,不是吗?

应启用 Java Web 启动。
检查 javaws(您的系统已启用 Java web start),在控制台中使用以下命令打开 java 控制面板。

javaws -viewer

图片供您参考

与 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)

这是您拥有代码的应用程序吗? Java 6u14 对它处理 jar 安全性的方式进行了更改,这对我们来说导致了非常相似的问题。 如果您的 jar 已签名并使用 Java 6u13 或更低版本,您可以考虑重构代码以解决此更新或要求 Java 6u13 或更低版本。 不幸的是,我不记得我们到底做了什么来解决这个问题——当时是恐慌模式。

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

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

我遇到了完全相同的问题。 结果发现 max-heap-size 设置为 1024 并且缺少该单位。 配置需要为 max-heap-size=1024 m

所以 jnlp 文件中显然无效的内存配置将导致这种确切的行为。

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

就我而言,Netbeans 会自动创建一个不起作用的 .jnlp 文件,我的问题是由于意外覆盖了服务器上的launch.jnlp文件(由于 Netbeans 的版本不足launch.jnlp正确)。 这导致本地.jnlp文件和远程.jnlp文件不匹配,导致 Java Web Start 在“验证应用程序”后直接退出。

因此,任何人都不必浪费一个小时来查找应该由 Java WS 充分沟通(但不是)的错误。

这也可能是由于系统中的环境变量 CATALINA_HOME。 在我们的组织中,有几种情况下 JNLP 应用程序只是拒绝启动而不记录任何内容并清空 CATALINA_HOME 解决了该问题。

我在命令提示符中设置了环境变量,但它没有出现在 GUI 中。 我不确定 setx 命令或注册删除命令是否有效。 删除变量后似乎需要重新启动。

我相信这是一个安全问题。 如果我下载 jnpl 文件并在通过javaws myfile.jnpl干净的 java 8 安装后执行它,一切正常(我得到多个窗口,我必须确认一些安全问题)。

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

尝试 Java Web Launcher,而不是 Java Web Start Launcher。 它对我有用。

右键单击未打开的 JNLP 文件和 select 打开方式。 在“您希望如何打开此文件”window 中,向下滚动并单击在此 PC 选项上查找另一个应用程序。 当文件资源管理器 window 打开时,导航到以下位置:C:\Program Files (x86)\Java\jre1.8.0_261\bin 或 64 位版本的文件夹

Select javaws.exe 然后点击打开按钮。 这将按预期打开 JNLP 文件。 确保选中始终使用此应用程序打开 .jnlp 文件。 就这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM