InetAddress.getLocalHost().getHostName()
在我切换到Java 8后不再获取主机名...
使用jdk1.8时,InetAddress.getLocalHost().getHostName()
返回"localhost"。以前(当我使用jdk1.6时)它会根据网络配置给我正确的主机名(即"ACTION03"):
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ACTION03
需要帮助吗?
InetAddress.getLocalHost().getHostName()
在我切换到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
中有一个记录127.0.0.1 localhost
,为主机提供了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());
}
}
hostname
命令会给你什么信息? - Robert