Kal*_*Kal 51
您可以使用 System.setProperty("java.net.preferIPv4Stack" , "true");
这相当于通过命令行传递它 -Djava.net.preferIPv4Stack=true
另一种方法,如果你绝望并且无法访问(a)代码或(b)命令行,那么你可以使用环境变量:
http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html.
专门为java web start设置环境变量:
JAVAWS_VM_ARGS
对于小程序:
_JPI_VM_OPTIONS
例如
_JPI_VM_OPTIONS = -Djava.net.preferIPv4Stack =真
此外,在Windows下,可以在"Java"选项卡下的Java控制计划页面中设置全局选项(对于常规Java应用程序).
小智 9
我遇到了这个问题,尝试从运行Java 7的Web服务器中的Web应用程序发送带有javax.mail的邮件.内部邮件服务器目标失败,"网络无法访问",尽管telnet和ping工作来自同一主机,而外部邮件服务器工作.我试过了
System.setProperty("java.net.preferIPv4Stack" , "true");
Run Code Online (Sandbox Code Playgroud)
在代码中,但失败了.因此参数值可能早于系统缓存.设置VM参数
-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)
在Web服务器启动脚本工作.
还有一点证据:在一个非常小的目标测试程序中,在代码中设置系统属性确实有效.因此,当使用第一个Socket时,可能会缓存该参数,可能不仅仅是在JVM启动时.
| 归档时间: |
|
| 查看次数: |
88768 次 |
| 最近记录: |