Jetty can't start of pure IPv6 env on windows

在同事Charlie熱心的測試下,他發現windows上可以使用以下指令,完整移除IPv4:

netsh interface ipv4 uninstall
在移除IPv4後,Jetty就無法啟動了:

我們使用的Java版本是1.8.0_201,Jetty是9.4.21。

經過爬文,發現這是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對我們來說是不小的工程,但目前應該沒其它解決方式了。