質問

現在ログインしているユーザーの名前(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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top