2016-07-27 54 views
3

InetAddress.getLocalHost().getHostName()与jdk1.8没有更多获取主机名的名字,因为我切换到Java 8 ...InetAddress类的java 8没有得到主机名

InetAddress.getLocalHost().getHostName()返回“localhost”。前(当我使用JDK1.6)它给了我正确的主机名(这是“ACTION03”)根据网络配置:

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

任何帮助吗?

+0

是什么'hostname'给你提供的名字记录? – Robert

+0

@Robert它给了我ACTION03 – taboubim

+0

在编辑之前,您的主机文件中有两个用于localhost的主机条目。不知道这是否与它有关。也许没有一对一的映射,它给本地主机?需要测试它。不确定正确的行为,但它适用于我。 – ManoDestra

回答

0

适用于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()); 
    } 
} 

罗伯特@哈瓦那:〜$ javac的HostName.java & & java的主机名

哈瓦那

+0

我我有Centos 7!它给我本地主机! – taboubim

1

similar bug在JDK解雇。

我的理解是他们改变了默认的解析过程。

他们遵守​​中的配置,其中主机配置为/etc/hosts,这使主机优先处理名称解析。

通常/etc/hosts127.0.0.1 localhost,对于主机localhost

+0

你让我的一天! – mulya

相关问题