InetAddress Java 8 не получает имя хоста

InetAddress.getLocalHost().getHostName() больше не получаю имя HostName, так как я перешел на Java 8 ...

с JDK1,8 InetAddress.getLocalHost().getHostName() возвращает "localhost". Ранее (когда я использовал jdk1.6), он дает мне правильное имя хоста (которое является "ACTION03") в соответствии с конфигурацией сети:

cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ACTION03

любая помощь?

2 ответа

В JDK произошла похожая ошибка.

Я понимаю, что они изменили процесс разрешения по умолчанию.

Они соблюдают конфигурацию в /etc/nsswitch.conf где хосты настроены для /etc/hosts это дает ему главный приоритет для разрешения имен.

Обычно /etc/hosts имеет запись для 127.0.0.1 localhost которые предоставляют имя для хоста localhost

У меня работает на Linux (Ubuntu 14.04) с Java 1.8.0_05.

public class HostName {
    public static void main(String[] args) throws Exception {
        System.out.println(java.net.InetAddress.getLocalHost().getHostName());
    }
}

robert @ habanero: ~ $ javac HostName.java && java HostName

Habanero

Другие вопросы по тегам