【问题标题】:How to set preferIPv4Stack property for JNLP app?如何为 JNLP 应用程序设置 preferIPv4Stack 属性?
【发布时间】:2012-03-21 17:38:28
【问题描述】:

我需要将 java.net.preferIPv4Stack=true 设置为通过 JNLP(javaws 和 applet)启动的应用

尝试了这些,但没有运气......

<j2se ...java-vm-args="-Djava.net.preferIPv4Stack=true" />
<property name="java.net.preferIPv4Stack" value="true"/>
System.setProperty("java.net.preferIPv4Stack", "true");

我可以让它工作的唯一方法是从本地文件系统启动 javaws 时看到:

javaws -J-Djava.net.preferIPv4Stack=true myapp.jnlp

小程序或 URL 上不可能实现的功能。

我应该如何设置这个属性?

【问题讨论】:

标签: java applet jnlp java-web-start


【解决方案1】:

在 Java 7 Update 6 (b17) 中,安全属性列表已更新。有关详细信息,请参阅Bug Report 716069

您可以通过在资源标签中指定以下行来包含此设置:

&lt;property name="java.net.preferIPv4Stack" value="true"/&gt;

【讨论】:

    【解决方案2】:

    您可以在 JNLP 中设置的唯一属性是那些不包括 java.net.preferIPv4Stackconsidered secure

    您拥有的替代选项是(未经测试):

    • 像你一样将参数直接传递给javaws:javaws -J-Djava.net.preferIPv4Stack=true myapp.jnlp
    • Java 控制面板 > Java > 视图 > 运行时参数,但这是使用您更改设置的 JRE 版本的所有 webstart 应用程序和小程序的全局设置
    • 使用环境变量:JAVAWS_VM_ARGS = -Djava.net.preferIPv4Stack=true
    • 通过向位于部署主页 (*) 中的 deployment.properties file 添加一行来将设置标记为安全:deployment.javaws.secure.properties=java.net.preferIPv4Stack - 注意:不确定这是否适用于 Java > 1.5。

    前 3 个选项在this document 中有详细说明。

    (*) 部署主页:
    Windows XP:%HOME%\Application Data\Sun\Java\Deployment
    Windows 7/Vista:%APPDATA%\..\LocalLow\Sun\Java\Deployment
    Linux/Solaris:%HOME%/.java/deployment

    【讨论】:

    • 问题是你必须把它教给你的applet的用户:)
    • @JulioFaerman 关于选项 4,我认为您可以安装一个 extension 并将这一行添加到客户端的 deployment.properties 文件中......不过从来没有这样做过。
    【解决方案3】:

    另外,对于未来的读者 - 小程序的环境变量:

    _JPI_VM_OPTIONS

    例如

    _JPI_VM_OPTIONS=-Djava.net.preferIPv4Stack=true

    【讨论】:

      猜你喜欢
      • 2012-01-28
      • 2011-07-09
      • 2014-01-24
      • 2013-01-30
      • 2018-02-03
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2015-11-21
      相关资源
      最近更新 更多