2

JavaSystem.getenv("computername")との違いは何ですか?System.getenv("hostname")

getenv()メソッドを使用してコンピューター名を取得する場合、コンピューター名に文字数制限はありますか?

ホスト名が長くSystem.getenv("computername")、15文字に切り捨てられているようです。使用しているOSはWindowsです。

4

3 に答える 3

1

これは機能しています:

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

お役に立てれば幸いです。

サム

于 2014-06-03T08:01:20.217 に答える
1

Windows での切り捨ては、NetBIOS のコンピュータ名の長さが 15 文字に制限されているためです。

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

于 2014-03-04T15:46:58.730 に答える
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 の両方で正常に動作します。切り捨ての兆候はありません。

于 2012-11-14T18:00:19.287 に答える