微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 为什么InetAddress.getLocalHost().getHostName()返回一个不同于bash“hostname”的值?

我有一个build.gradle任务在我的开发框上工作像一个冠军,生成一个属性文件,该文件记录生成生成的机器的名称.逻辑很简单
def hostname = InetAddress.getLocalHost().getHostName();

在我的开发框上,这总是产生与从bash shell做主机名相同的值.

bobk-mbp:DM_Server bobk$hostname
bobk-mbp.local

然而,在我们的jenkins CI服务器上,bash主机名返回一个东西,但是我调用了InetAddress.getLocalHost().getHostName();返回别的东西.jenkins机器需要改变什么才能使这两个机器恢复相同的值?

解决方法

假设你在linux上,从o / s执行的hostname命令返回内核配置的主机名.

InetAddress.getHostName()使用您的O / S中配置的命名服务(DNS)对服务器的IP地址进行反向查找.

如果您需要o / s所理解的主机名,则可以通过System.getenv从环境变量获取主机名,这可能是最简单的选项.这不是一个完全可靠的方法,但它可能是足够的,而不需要深入网络或系统管理员.

原文地址:https://www.jb51.cc/java/123730.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐