Я отвечал на вопрос о проблеме, которая касается 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")
и есть ли какие-либо удары? что лучше?
Вы, вероятно, не следует полагаться на переменные окружения системы –
Если вы заботитесь о совместимости, знайте, что 'HOSTNAME' не существует на Windows. Но главный вопрос: зачем вам это нужно? На машине может размещаться много доменов, так зачем вам это имя? – Andreas
Не просто Windows, но нет гарантии, что он будет установлен на Linux. Во-первых, это не требуемая переменная среды POSIX, и некоторые дистрибутивы могут не использовать ее или прекратить ее использовать. Во-вторых, в зависимости от того, как запускается процесс, необязательно, чтобы все переменные среды экспортировались вперед. – Pace