5

Java を使用している Unix の現在のプロセスの所有者を知りたいです。現在のサーバーの所有者名を見つけたい。Runtime.getRuntime().exec() で「who am i」コマンドを実行してみましたが、結果が返されません。

String line = ""; 
Process p = Runtime.getRuntime().exec("who am i");
InputStream iStream = p.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(iStream);
BufferedReader bufReader = new BufferedReader(inputStreamReader);
while ((line = bufReader.readLine()) != null) {
    System.out.println("Input "+line);
}

このコードに何か問題がありますか、またはJavaを使用して現在のプロセスの所有者を見つける方法はありますか?

4

1 に答える 1

11

まず第一に、私はSystem.getProperty("user.name")それのために働くべきだと思います

第二に、コードが何も返さない理由は、コマンドにスペースが含まれていないwhoamiため、実行行が必要であるためです(cygwinまたは** nixベースのシステムを介してWindowsで実行していると仮定します)

Process p = Runtime.getRuntime().exec("whoami");
于 2012-10-31T14:12:05.963 に答える