【问题标题】:Hostname from Red Hat Enterprise Linux ServerRed Hat Enterprise Linux 服务器的主机名
【发布时间】: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());
        }
    }

}
  1. 来自 RHEL 6.9 /IBM JDK 1.8 的主机名 = vas2cxn00001122
  2. 来自 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 操作系统级别检查什么吗?

标签: java java-8 redhat


【解决方案1】:

我无法找出 RHEL 7.6 的根本原因。所以我改变了我的java逻辑

from 

InetAddress.getLocalHost().getHostName()

to 
Runtime.getRuntime().exec("hostname")

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 2016-11-30
    • 2023-03-20
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多