2011-10-25 4 views
4

OSX LionでJavaでInetAddress.getLocalHost()の解決に問題がある人は、オフラインで作業中(インターネットに接続されていない)ですか?オフライン時にOSX LionでInetAddress.getLocalHost()を解決する

それはそのローカルホストに表示されないだろう:127.0.0.1が全く解決されていない:私の/ etc/hostsの中で特別な

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

何も:

## 
# 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レベルでさらにデバッグする方法についてのヒントを教えてください。

UPDATE 26/10/2011 - これはJDKのバグ可能性があり、次のテスト:

With reverse lookup: localhost/127.0.0.1 

乾杯、 ギャルダー

+0

'Terminal.app'の' ping localhost'は何を表示しますか? – trojanfoe

+0

'InetAddress.getLocalHost();'を呼び出すだけで、その例外が発生しますか?ワオ。これはMac OSX 10.7.XのJava1.6上にありますか?私は私のために働くようです。 – Gray

+0

JDKのMac OSX 10.7.2:Javaバージョン「1.6.0_26」 Java(TM)SEランタイム環境(ビルド1.6.0_26-b03-383-11A511) Java HotSpot(TM)64ビットサーバVM(ビルド20.1 -b02-383、混合モード) –

答えて

7

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); 
} 

には、次のときにオフラインを印刷しこの問題を回避するには、localhostのエイリアスをネットワークインターフェイスに追加してください:

sudo ifconfig en0 alias 127.0.0.1 

これを実行すると、オフライン時にローカルホストの問題がなくなります。

関連する問題