主機我發佈了關於涉及InetAddress類在java中8個問題的問題之間的更好:InetAddress java 8 is not getting the hostname這是越來越利用InetAddress或System.getenv
但是我發現了一個簡單的解決方案通過使用System.getenv("HOSTNAME")
,而不是InetAddress.getLocalHost().getHostName()
...
我想知道是什麼讓使用主機名之間的差別:
InetAddress.getLocalHost().getHostName();
或
System.getenv("HOSTNAME")
有沒有什麼影響?哪個更好?
您可能不應該依賴系統環境變量 –
如果您關心兼容性,請確定Windows上不存在「HOSTNAME」。但主要問題是:你爲什麼需要它?一臺機器可以託管多個域名,那麼你需要什麼名稱? – Andreas
不只是Windows,但不能保證它會在Linux上設置。首先,它不是POSIX必需的環境變量,有些發行版可能會選擇不使用它或停止使用它。其次,根據進程的啓動方式,它不一定會向前導出所有環境變量。 – Pace