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 символов.
Я написал простое тестовое приложение:
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. Никаких признаков усечения.