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从环境变量获取主机名,这可能是最简单的选项.这不是一个完全可靠的方法,但它可能是足够的,而不需要深入网络或系统管理员.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...