java.net.InetAddress获取localhost地址错误(WinXP)

时间:2012-06-27 00:59:39

标签: java networking groovy

我正在使用Groovy 1.8.6,在JDK 1.6.0u33上运行。当我的程序启动时,它会尝试通过连接到主机地址上的telnet端口连接到同一主机上的另一个进程。它使用标准Java类InetAddress来确定本地主机地址。但是,出于某种原因,当我在Windows XP VM上启动程序时,主机地址会解析为垃圾并且连接失败。

启动脚本包含此行以获取诊断信息: def serverAddress = "http://${InetAddress.localHost.hostAddress}:${config.ServerPort}/DigitizerService?wsdl"

serverAddress打印到终端时的输出是: http://0.1.0.5:8989/DigitizerService?wsdl

地址并不总是相同的 - 另一次是0.2.0.5。但它总是出现甚至不是有效地址的东西,更不用说这个主机的实际地址了。

这个相同的代码库在大量的盒子中正在生产中,我从来没有见过像这样的问题,所以我想它必须特定于这个新的devbox它 - 或者它是一个bug在新的JDK中。

有没有人任何想法可能会导致一些基本输出垃圾的东西?提前谢谢。

1 个答案:

答案 0 :(得分:0)

虽然我在发布此问题之前尝试重新启动(当然,这毕竟是Windows),但它没有帮助,VM的第二次重启似乎解决了这个问题。它正在安装一大堆Windows更新,因为它是我刚刚拂去的旧VM,所以我想这可能会在操作系统内部以某种方式扰乱内容。

所以我对此是如何产生的仍感到困惑,但我认为我可以断定这不是Java的错。可能。