JavaSystem.getenv("computername")
との違いは何ですか?System.getenv("hostname")
getenv()
メソッドを使用してコンピューター名を取得する場合、コンピューター名に文字数制限はありますか?
ホスト名が長くSystem.getenv("computername")
、15文字に切り捨てられているようです。使用しているOSはWindowsです。
JavaSystem.getenv("computername")
との違いは何ですか?System.getenv("hostname")
getenv()
メソッドを使用してコンピューター名を取得する場合、コンピューター名に文字数制限はありますか?
ホスト名が長くSystem.getenv("computername")
、15文字に切り捨てられているようです。使用しているOSはWindowsです。
これは機能しています:
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
Windows 上の Java 5 と 7 の両方で正常に動作します。切り捨ての兆候はありません。