InetAddress java 8没有获取主机名

InetAddress.getLocalHost().getHostName()不再获取HostName的名称,因为我切换到java 8 …

使用jdk1.8, InetAddress.getLocalHost().getHostName()返回“localhost”。 之前(当我使用jdk1.6时)它根据网络配置给出了正确的主机名(即“ACTION03”):

 cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=ACTION03 

任何帮助?

在JDK中发生了类似的错误 。

据我所知,他们改变了默认解析过程。

他们尊重/etc/nsswitch.conf中的配置,其中为/etc/hosts配置了/etc/hosts ,为其提供了名称解析的主要优先级。

通常/etc/hosts具有为主机localhost提供名称的127.0.0.1 localhost记录

适用于Linux(Ubuntu 14.04)和Java 1.8.0_05。

 public class HostName { public static void main(String[] args) throws Exception { System.out.println(java.net.InetAddress.getLocalHost().getHostName()); } } 

robert @ habanero:〜$ javac HostName.java && java HostName

哈瓦那