2012-03-21 64 views
2

我需要設置java.net.preferIPv4Stack = true以一個應用程序通過JNLP(javaws的程序和applet)如何爲JNLP應用程序設置preferIPv4Stack屬性?

想這些,沒有運氣開始......

<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 

什麼是不可能的applet或URL。

我應該如何設置這個屬性?

+0

最佳幾乎答案至今:HTTP://blog.brixandersen。dk/2007/04/29/working-around-buggy-java-applets/ – 2012-06-27 21:59:09

+0

在我的機器上禁用IPV6也使JGroups工作:) – 2012-06-27 22:45:35

回答

1

隨着Java 7的更新6(B17)的安全屬性的列表已經更新。有關詳細信息,請參閱Bug Report 716069

您可以通過指定資源標籤內以下行包括此設置:

<property name="java.net.preferIPv4Stack" value="true"/>

+1

這是個好消息,謝謝! – 2012-09-08 20:30:05

+0

這個解決方案適合你嗎? – 2017-03-16 09:01:32

1

您可以在JNLP中設置的唯一屬性是considered secure,其中不包括java.net.preferIPv4Stack

的替代方案已被(未測試):

  • 直接傳遞參數給喜歡你的javaws那樣:javaws -J-Djava.net.preferIPv4Stack=true myapp.jnlp
  • Java控制面板>的Java>查看>運行參數,但是這是一個JAVAWS_VM_ARGS = -Djava.net.preferIPv4Stack=true
  • 標誌設置添加一行到爲安全:使用JRE爲您更改了設置
  • 使用環境變量的版本所有Webstart的應用程序和applet的全局設置,位於部署主頁(*):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

+0

問題是你必須教你這個applet的用戶:) – 2012-07-19 17:44:44

+0

@JulioFaerman關於選項4,我認爲你可以安裝一個[擴展](http://docs.oracle.com/javase/1.4.2/docs/guide/plugin/developer_guide/extensions.html),並將這一行添加到客戶端的部署.properties文件...雖然沒做過。 – assylias 2012-07-19 17:53:52

+0

不知道,會檢查,很多tnx! – 2012-07-20 02:52:21

0

此外,對於未來的讀者 - 用於小應用程序的環境變量:

_JPI_VM_OPTIONS

例如

_JPI_VM_OPTIONS = -Djava.net.preferIPv4Stack =真

+0

對於開發是好的,但對於用戶... – 2012-07-19 17:45:50

相關問題