我正在使用Groovy 1.8.6,在JDK 1.6.0u33上運行。當我的程序啓動時,它會嘗試通過連接到主機地址上的Telnet端口來連接到同一主機上的另一個進程。它使用標準Java類InetAddress來確定本地主機地址。但是,由於某種原因,當我在Windows XP虛擬機上啓動該程序時,主機地址解析爲垃圾並且連接失敗。java.net.InetAddress獲取本地主機地址錯誤(WinXP)
啓動腳本包括這一行診斷信息: def serverAddress = "http://${InetAddress.localHost.hostAddress}:${config.ServerPort}/DigitizerService?wsdl"
serverAddress
時被打印到終端的輸出是: http://0.1.0.5:8989/DigitizerService?wsdl
地址不總是各項─另一時間它出來如0.2.0.5
。但它總是作爲一個甚至不是有效地址的東西出現,更不用說這個主機的實際地址了。
這個相同的代碼庫正在生產大量的盒子,我從來沒有見過這樣的問題出現,所以我想它必須是特定於這個新的devbox - 或者它是一個新JDK中的錯誤。
沒有人有任何想法什麼可能導致如此基本的東西輸出垃圾?提前致謝。
其他進程不在** 127.0.0.1 **上進行監聽? – jamesallman
這是,但這不是重點。 java.net.InetAddress.getLocalHost()返回一個無效的IP,這與我是否可以解決問題有關。 – Johansensen