4

InetAddress.getLocalHost().getHostName()自从我切换到 java 8 后,不再获得 HostName 的名称...

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

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

有什么帮助吗?

4

2 回答 2

1

JDK 中也出现了类似的错误。

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

他们尊重配置/etc/nsswitch.conf主机的配置,/etc/hosts使其成为名称解析的主要优先级。

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

于 2016-07-28T18:27:45.293 回答
1

在带有 Java 1.8.0_05 的 Linux (Ubuntu 14.04) 上为我工作。

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

哈瓦那人

于 2016-07-28T03:41:07.727 回答