System.getenv(“computername”)截断返回值

时间:2012-11-14 17:20:11

标签: java windows hostname getenv computer-name

Java中System.getenv("computername")System.getenv("hostname")之间有什么区别?

使用getenv()方法检索计算机名称时是否有任何字符限制?

我有一个冗长的主机名,System.getenv("computername")似乎将其截断为15个字符。使用的操作系统是Windows。

3 个答案:

答案 0 :(得分:1)

Windows中的截断是由于NetBIOS的计算机名长度限制为15个字符。

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

答案 1 :(得分:1)

这是有效的:

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

希望我帮助你。

萨姆'

答案 2 :(得分:0)

我写了一个简单的测试应用程序:

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

然后执行:

set COMPUTERNAME=abcdefghijklmnopqrstuvwxyz
java Test

打印:

abcdefghijklmnopqrstuvwxyz

在Windows上的Java 5和7中都可以正常工作。没有截断的迹象。