web-dev-qa-db-ja.com

Java現在のマシン名とログインしているユーザー?

現在ログインしているユーザーの名前(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番目のものはどうなりますか?

144
Omar Kooheji

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

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

マシンのホスト名:

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

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

System.getProperty("user.name");

マシンのホスト名を取得するには:

InetAddress.getLocalHost().getHostName();

質問の最後の部分に答えるために、 Java API はgetHostName()が返すことを示します

このIPアドレスのホスト名、またはセキュリティチェックで操作が許可されていない場合は、IPアドレスのテキスト表現。

85
Bill the Lizard

環境変数が偽造される可能性があるため、user.nameの使用は安全ではありません。あなたが使用していた方法は良いですが、UnixベースのOSにも同様の方法があります

9
phoenix

現在ログインしているユーザーパスを取得するには:

System.getProperty("user.home");
0
Swapnil1156035