現在ログインしているユーザーの名前(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) {
...
}
最初のものは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());
現在ログインしているユーザーを取得するには:
System.getProperty("user.name");
マシンのホスト名を取得するには:
InetAddress.getLocalHost().getHostName();
質問の最後の部分に答えるために、 Java API はgetHostName()が返すことを示します
このIPアドレスのホスト名、またはセキュリティチェックで操作が許可されていない場合は、IPアドレスのテキスト表現。
環境変数が偽造される可能性があるため、user.name
の使用は安全ではありません。あなたが使用していた方法は良いですが、UnixベースのOSにも同様の方法があります
現在ログインしているユーザーパスを取得するには:
System.getProperty("user.home");