2014-01-22 33 views
0

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

目前我正在尝试将1.6_45与我的应用绑定。但是,当用户在其系统上安装1.7_xx JRE时遇到问题。它阻止了webstart应用程序的启动。罐子是自签名的,并且由CA授权机构签署它们不是一个选项,因为它太$$。我将jnlp中的j2se版本标记更改为1.6 *,并允许它以1.7_xx的形式运行。一个bug被压扁了。

现在的问题是,系统正在升级到1.6_71 [私有oracle版本],显然有1.7安全修补程序backported它。所以现在因为jnlp标签有1.6 *,我的应用程序正在拾取1.6_71并完全悬挂。 Webstart只是打开java控制台并挂起。我试着给jnlp java-vm-args添加-Djnlpx.home,指向捆绑的jre/bin,但是没有运气。

我试过一种方式[从这里的帖子]是我创建了一个快捷方式到我的特定javaws传递jnlp文件位置作为参数。这没有奏效。它仍然拿起1.6_71并挂起。

在这一点上,如果我谷歌了,它会开始给我看一个验证码......叹了口气。 任何指针,非常感谢!谢谢!

回答

1

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

简答题,没有。很长的答案,不。

+0

我很害怕这个。关于如何让我的应用程序工作的任何其他建议? –

+0

请参阅[本答案](http://stackoverflow.com/a/21247298/418556)中的评论以获取(可能)免费的数字证书。 –

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 了解更多信息。

+0

不幸的是,它的企业应用程序分发给客户,所以我们不能要求他们减少他们机器上的安全设置。正如我在我的问题中提到的那样,我无法将jre设置为指向1.6的次要版本,因为机器上存在1.7会阻止启动。我们几乎已经决定签署我们拥有CA可信任证书的罐子是最好的选择。Thx –

+0

同意 - 这是真正的唯一途径,也更加安全。祝你好运! – mikemil

相关问题