【发布时间】:2016-07-28 15:31:54
【问题描述】:
我发布了一个关于 java 8 中的 inetaddress 问题的问题:InetAddress java 8 is not getting the hostname
但是我找到了一个简单的解决方案,使用 System.getenv("HOSTNAME") 而不是 InetAddress.getLocalHost().getHostName()...
我想知道使用获取主机名有什么区别:
InetAddress.getLocalHost().getHostName();
或
System.getenv("HOSTNAME")
有什么影响吗?哪个更好?
【问题讨论】:
-
你可能不应该依赖系统环境变量
-
如果您关心兼容性,请知道
HOSTNAME在 Windows 上不存在。但主要问题是:你为什么需要它?一台机器可以托管许多域,那么您需要这个名称是什么? -
不只是 Windows,但不能保证它会在 Linux 上设置。首先,它不是 POSIX 必需的环境变量,某些发行版可能会选择不使用它或停止使用它。其次,根据进程的启动方式,它不一定会将所有环境变量都向前导出。
-
看来你应该阅读这个答案,以及这篇文章中的其他人。 stackoverflow.com/a/15197702/2308683
标签: java java-8 system inetaddress getenv