为什么InetAddress.getLocalHostgetHostName返回不同于bash“主机名”的值?

问题描述

假设您使用的是Linux,则从o / s执行的hostname命令将返回内核的已配置主机名。

InetAddress.getHostName()使用操作系统中配置的命名服务(DNS)对服务器的IP地址进行反向查找。

如果需要操作系统所理解的主机名,那么通过System.getenv从环境变量获取主机名可能是最简单的选择。这不是一种完全健壮的方法,但是无需深入研究网络或系统管理员就可以了。

解决方法

我有一个build.gradle任务,它像我的dev框上的冠军一样工作,生成了一个属性文件,该文件记录了生成生成的机器的名称。逻辑很简单…

def hostname = InetAddress.getLocalHost().getHostName();

在我的开发箱中,这总是产生与bash shell中的主机名相同的值。

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

但是,在我们的jenkins
CI服务器上,bash主机名返回一件事,但是我对InetAddress.getLocalHost()。getHostName()的调用;返回其他内容。在jenkins机器上需要进行哪些更改才能使这两个返回相同的值?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...