Problem
在同事Charlie熱心的測試下,他發現windows上可以使用以下指令,完整移除IPv4:
netsh interface ipv4 uninstall
在移除IPv4後,Jetty就無法啟動了:
我們使用的Java版本是1.8.0_201,Jetty是9.4.21。
How to resolve?
經過爬文,發現這是JDK8、9的Bug。於是我使用以下測試程式分別使用JDK8與JDK13去確認結果:
import java.net.NetworkInterface; import java.net.SocketException; public class Tester { public static void main(String[] args) { try { NetworkInterface.getNetworkInterfaces(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
經過實驗,的確在JDK8上有問題,而JDK13已經解決這個問題了:
更新JDK對我們來說是不小的工程,但目前應該沒其它解決方式了。
Reference
- JDK-8046500 : GetIpAddrTable function failed on Pure Ipv6 environment
留言
張貼留言