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

Java 为JWS应用程序启动指定JRE位置,java,java-web-start,jnlp,Java,Java Web Start,Jnlp,有没有一种方法可以指向运行JWS应用程序的特定JRE/JDK位置?我正在研究指定JRE的实际位置,而不仅仅是通过JNLP文件的JavaSE元素指定JRE的版本。我不想访问任何系统JRE,我只想使用与我的应用程序捆绑在一起的东西 目前,我正在尝试将1.6_45与我的应用捆绑在一起。但是,当用户的系统上安装了1.7_xxJRE时,我会遇到一些问题。它会阻止webstart应用程序的启动。JAR是自签名的,由CA授权机构对其进行签名不是一个选项,因为它太过$$。我将jnlp中的j2se版本标记更改为1

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

目前,我正在尝试将1.6_45与我的应用捆绑在一起。但是,当用户的系统上安装了1.7_xxJRE时,我会遇到一些问题。它会阻止webstart应用程序的启动。JAR是自签名的,由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参数中,指向捆绑的jre/bin,但没有成功

我尝试的一种方法是[在SO上的一篇文章中]创建一个特定javaws的快捷方式,将jnlp文件位置作为参数传递。这不起作用。它仍然捡起1.6_71并挂起

在这一点上,如果我再谷歌,它将开始向我显示验证码…叹气。 非常感谢您的指点!谢谢

有没有一种方法可以指向运行JWS应用程序的特定JRE/JDK位置


简短回答,否。长篇回答,否。

Oracle最新发布的Java 7 Update 51包括新的安全更改,这些更改将阻止某些应用程序。这是新的“安全基线”,显然1.6有一个等效的代码级别

帮助确定具体情况的配置选项之一是安全级别,可在(Windows)控制面板->Java的“安全”选项卡中找到。如果您将安全级别设置为最低级别(不记得名称),则可能不会被阻止。安全级别高将阻止未签名和自签名。非常高的安全级别会有更大的限制,比如阻止过期的应用程序——这意味着证书已经过期

另外,您可以尝试设置要运行的JRE的特定级别-请参阅链接
更多信息。

我很害怕。关于如何让我的应用程序工作,还有其他建议吗?请参阅中的评论以获得(可能的)免费数字证书。不幸的是,这是一个分发给客户的企业应用程序,因此我们无法要求他们降低其计算机上的安全设置。正如我在问题中提到的,我无法将jre设置为特定于1.6的次要版本,因为机器上的1.7会阻止发布。我们几乎已经决定,用CA可信证书签署我们的JAR是最好的选择。ThxAgreed-这确实是唯一的方法,而且更安全。祝你好运!