为JWS应用程序启动指定JRE位置

时间:2014-01-22 17:25:02

标签: java java-web-start jnlp

有没有办法指向特定的JRE / JDK位置来运行JWS应用程序?我正在考虑指定JRE的实际位置,而不仅仅是通过JNLP文件的Java SE元素的版本。我不想访问任何系统JRE,我只想使用与我的应用程序捆绑的whats。

目前我正在尝试将1.6_45与我的应用捆绑在一起。但是,当用户在其系统上安装了1.7_xx JRE时,我遇到了问题。它阻止了webstart应用程序的启动。这些罐子是自签名的,并且由CA权限签署它们不是一个选项,因为它太过$$。我更改了jnlp中的j2se版本标签,说1.6 *,这使得它可以运行1.7_xx。一个小虫被压扁了。

现在问题是系统正在升级到1.6_71 [私有oracle版本],显然有一些1.7安全修复程序在其中向后移植。所以现在因为jnlp标签有1.6 *,我的应用程序正在接收1.6_71并完全挂起。 Webstart只是打开java控制台并挂起。我尝试将-Djnlpx.home添加到jnlp java-vm-args,指向捆绑的jre / bin,但没有运气。

我尝试[从这里的帖子开始尝试]的一种方法是我创建了一个快捷方式,将我的特定javaws传递给jnlp文件位置作为参数。这没用。它仍然捡起1.6_71然后挂了。

此时,如果我再次谷歌,它将开始向我展示验证码......叹息。 任何指针都非常感谢!谢谢!

2 个答案:

答案 0 :(得分:1)

  

有没有办法指向特定的JRE / JDK位置来运行JWS应用程序?

简短的回答,没有。答案很长,没有。

答案 1 :(得分:0)

Oracle最新版本的Java 7 Update 51包含了一些新的安全更改,可能会阻止某些应用程序。这是新的“安全基线”,显然有1.6的等效代码级别。

有助于确定究竟发生了什么的配置选项之一是安全级别,可从(Windows)控制面板的“安全”选项卡中找到 - > Java的。如果将安全级别设置为最低(不记得名称),则可能不会被阻止。安全级别高将阻止未签名和自签名。安全级别非常高将更具限制性,例如阻止过期的应用程序 - 意味着证书已过期。

此外,您可以尝试设置要运行的JRE的特定级别 - 请参阅链接 http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#jnlp 了解更多信息。