java中获得hostname的方式

最近用storm的过程中发现了一个问题,根源也是hostname获取的不正确.和http://kabike.iteye.com/blog/2111791问题类似

storm,hadoop这些java项目在linux上取得hostname的时候,不是简单调用hostname这个命令,而是调用

InetAddress.getLocalHost().getCanonicalHostName()

显而易见,如果/etc/hosts把hostname设置成127.0.0.1这个回环IP,就很有可能把hostname取成localhost