System.getenv("имя_компьютера") усечение возвращаемого значения

В чем разница между System.getenv("computername") а также System.getenv("hostname") на яве?

Существует ли ограничение на количество символов в имени компьютера при его получении с помощью getenv() метод?

У меня длинное имя хоста и System.getenv("computername") кажется, обрезать его до 15 символов. Используемая ОС - Windows.

3 ответа

Это работает:

try {
return InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
return "Error: UnknownHostException";
}

Надеюсь, я помогу тебе.

Сэм'

Усечение в Windows происходит из-за того, что NetBIOS имеет ограничение длины имени компьютера в 15 символов.

http://support.microsoft.com/kb/909264

Я написал простое тестовое приложение:

public class Test {
  public static void main(String[] args) {
    System.out.println(System.getenv("computername"));
  }
}

а затем выполнил:

set COMPUTERNAME=abcdefghijklmnopqrstuvwxyz
java Test

который напечатал:

abcdefghijklmnopqrstuvwxyz

Прекрасно работает в Java 5 и 7 на Windows. Никаких признаков усечения.

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