質問
現在ログインしているユーザーの名前(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");
所属していません StackOverflow