【问题标题】:Specifying a JRE location for a JWS app launch为 JWS 应用程序启动指定 JRE 位置
【发布时间】:2014-01-22 17:25:02
【问题描述】:

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

目前我正在尝试将 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,但那里没有运气。

我尝试的一种方法 [来自 SO 上的帖子] 是我创建了一个到我的特定 javaws 的快捷方式,将 jnlp 文件位置作为参数传递。这没有用。它仍然拾取 1.6_71 并挂起。

此时,如果我再用谷歌搜索,它会开始向我显示验证码……叹息。 任何指针都非常感谢!谢谢!

【问题讨论】:

    标签: java java-web-start jnlp


    【解决方案1】:

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

    简短的回答,不。长答案,不。

    【讨论】:

    • 我害怕那个。关于如何让我的应用程序工作的任何其他建议?
    • 查看this answer 中的 cmets 以获得(可能)免费的数字证书。
    【解决方案2】:

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

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

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

    【讨论】:

    • 不幸的是,它是分发给客户的企业应用程序,因此我们不能要求他们降低其机器上的安全设置。正如我在问题中提到的那样,我不能将 jre 设置为具体指向 1.6 的次要版本,因为机器上存在的 1.7 会阻止启动。我们几乎已经决定用 CA 信任的证书签署我们的 jars 是最好的选择。Thx
    • 同意 - 这确实是唯一的方法,而且更安全。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多