离线时OSX Lion上的InetAddress.getLocalHost()解析

时间:2011-10-25 16:35:19

标签: java macos dns localhost osx-lion

当脱机工作(即没有连接到互联网)时,是否有人在使用OSX Lion的Java中解决Java的InetAddress.getLocalHost()问题?

看来localhost:127.0.0.1根本没有得到解决:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at java.net.InetAddress.getLocalHost(InetAddress.java:1356)

我的/ etc / hosts没什么特别的:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

我怀疑这不是Java问题,而是OSX Lion DNS解析问题。

有人可以帮忙吗?

如果这不是正确的论坛,我可以在哪里询问这个问题?

有关如何在OSX级别进一步调试的提示吗?

更新26/10/2011 - 这可能是JDK bug,以下测试:

InetAddress addr;
try {
   addr = InetAddress.getLocalHost();
   System.out.println("With localhost access: " + addr);
} catch (ArrayIndexOutOfBoundsException e) {
   addr = InetAddress.getByName(null);
   System.out.println("With reverse lookup: " + addr);
}

离线时会打印以下内容:

With reverse lookup: localhost/127.0.0.1

干杯, 盖尔德

1 个答案:

答案 0 :(得分:7)

找到解决此问题的方法,只需将localhost的别名添加到网络接口:

sudo ifconfig en0 alias 127.0.0.1

一旦到位,我在离线时不会再遇到本地主机问题。