2017-01-06 10 views
6

私はOS Xシエラ(JDK 8u111)上で次のコマンドを実行している場合(例えばLinux上ミリ秒ではなく)、それを実行するために5秒かかる:Mac OS X SierraでRuntimeMXBean.getName()がハングアップする - 修正方法?

import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 

public class BeanTest { 
    public static void main (String[] args) { 
     RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean(); 
     System.out.println(bean.getName()); 
    } 
} 

これは、私のライブラリの大規模な景気減速を引き起こしています新しいバージョンではこのビットの管理APIが呼び出されます。私の最初の考えは、DNSの問題(コンピュータはローカルホームNATにあります)ですが、ローカルホスト名またはローカルIPアドレスをシェルで解決しようとすると、(NXDOMAIN)の応答がすぐに返されます。 Javaプロセスにdtruss実行すると、5秒遅れの期間中、これらの線の一定の繰り返しを生成:

782/0x36f5: psynch_cvwait(0x7FEE4170B968, 0x20100000300, 0x200)  = -1 Err#316 
    782/0x36f5: gettimeofday(0x7000039B4938, 0x0, 0x0)  = 0 0 

ここで起こっていると私はこのボトルネックのブロックを解除するために何ができるのか?私はLocalHostNameを手動で設定するホスト名で、問題を解決

+1

私は同じ問題を持っています。なぜ誰も知っていますか? – James

+0

JDK 8u131と同じ問題 – cloudycliff

答えて

0

、この前に、ホスト名が設定されていません。

$ scutil --set HostName $(scutil --get LocalHostName)