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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/java/123730.html

猜你在找的Java相关文章