1. ホーム
  2. java

[解決済み] Java 現在のマシン名とログインしているユーザー?

2022-04-23 16:19:13

質問

現在ログインしているユーザー名(Windows/Unix)とマシンのホスト名を取得することは可能でしょうか?

静的な環境クラスのプロパティだと思うのですが。

ユーザー名については、こんなのがありました。

com.sun.security.auth.module.NTSystem NTSystem = new
        com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());

で、マシン名はこれです。

import java.net.InetAddress;
...
String computerName;
...
try {
    computerName = InetAddress.getLocalHost().getHostName();
}

catch(Exception ex) {
    ...
}

1枚目はWindowsだけですか?

また、2番目のものは、ホスト名を設定していない場合、どうなるのでしょうか?

解決方法は?

現在ログインしているユーザーを取得する。

System.getProperty("user.name"); //platform independent 

とマシンのホスト名を指定します。

java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());