【发布时间】:2021-03-15 02:50:17
【问题描述】:
我正在使用下面给出的 java 代码使用 IBM JDK 1.8 从 RHEL 获取主机名
import java.net.InetAddress;
public class Hostname {
public static void main(String[] args) {
try{
String hostname = InetAddress.getLocalHost().getHostName();
System.out.println("Hostname is :"+hostname);
}
catch(Exception e){
System.out.println(" Exception :"+e);
System.out.println(" Exception Msg :"+e.getMessage());
}
}
}
- 来自 RHEL 6.9 /IBM JDK 1.8 的主机名 =
vas2cxn00001122。 - 来自 RHEL 7.6 / IBM JDK 1.8 的完全限定主机名 =
vas2cxn00003344.cloud.vd.org。
为什么 6.9 和 7.6 之间存在差异?我们必须在 RHEL 7.6 中更新或修改主机名,以便仅获取主机名,而不是完全限定的主机名。
【问题讨论】:
-
它已在 jdk 7u5 中修复,它似乎基于下面给出的链接。 bugs.java.com/bugdatabase/view_bug.do?bug_id=7166687
-
听起来像是对我的回答。为什么不这样发布呢?
-
那是我的错。 java 代码已根据链接修复,但我在 RHEL 7.6 中获得了完全限定名称。
-
再次,您提出了一个很好的问题,然后您找到了一个有价值的答案。这似乎是一个仅链接的答案,但我认为不是。答案是“这是在版本 XXX 中修复的错误”,然后链接只是支持它。我建议您将其发布为您自己问题的答案,以便您获得一些代表并让问题有一个有效的答案。如果你发布它,我会支持你的答案。
-
根据我提到的 java 链接 - 它在 jdk 7 版本本身中已修复。但我面临这个问题,即来自主机名()的完全限定名称,我需要从 RHEL 7.6 操作系统级别检查什么吗?