IPv6使用现在正在慢慢开始,因此我目前正在修复和更新所有为IPv6做好准备的应用程序.
其中一个应用程序是Java编辑器JOSM(http://josm.openstreetmap.de/).即使操作系统使用IPv6,Java也不会在默认配置中使用IPv6.
据
http://docs.oracle.com/javase/1.5.0/docs/guide/net/ipv6_guide/#using
我设置java.net.preferIPv6Addresses,以true让它使用IPv6.关于互联网连接断开的结果是用户错误报告.
似乎Java只切换到使用IPv6地址而不是IPv4,但不做其他事情.我维护的所有基于C/C++的软件都已更改为检查并尝试所有可用的IP地址,因此只要其中一个地址有效,就会跳过损坏的IPv6(或IPv4)地址.对我来说,看起来Java只尝试一次,这在现实世界中不起作用.
当IPv6通过隧道传输时,OS通常也更喜欢IPv4而不是IPv6.看起来Java也忽略了这个设置.
所以我的问题是:在没有破坏IPv4用户的应用程序的情况下,有没有什么好方法可以让Java应用程序默认使用IPV6.
用户错误报告:http://josm.openstreetmap.de/ticket/8562,http://josm.openstreetmap.de/ticket/8627.