Итак, нет принципиальной разницы между Windows и Linux.Однако есть разница в конфигурации двух.Как указано в вопросе, на который вы ссылались, это зависит от того, что находится внутри файла hosts
.Это файл, который используется как в Windows, так и в Linux, и сообщает ОС, какие IP-адреса могут быть назначены определенным именам хостов.Вот пример записи в файле:
127.0.0.1 localhost
Это сообщит ОС, что если я сделаю запрос к localhost
, просто перенаправлю запрос на 127.0.0.1
.Это похоже на то, что делает DNS-сервер, но процесс происходит на вашем компьютере, без проверки интернета.
Теперь, ссылаясь на то, почему эта строка меняется на разных платформах.Документация гласит:
Если этот InetAddress был создан с именем хоста, это имя хоста будет запомнено и возвращено;в противном случае будет выполнен обратный поиск имени, и результат будет возвращен на основе настроенной системой службы поиска имен. Если требуется поиск службы имен, вызовите getCanonicalHostName.
Этот раздел относится к имени хоста, указанному в файле hosts
.В вашей системе Linux в файле hosts
есть запись, похожая на приведенную выше (что довольно часто встречается в средах Linux).Java замечает это и возвращает это вместо IP.Поскольку в Windows такой записи нет, вместо этого просто возвращается IP.