5

我想知道使用 Java 的 Unix 中当前进程的所有者。我想找到当前服务器的所有者名称。我尝试在 Runtime.getRuntime().exec() 中运行“我是谁”命令,但它没有返回任何结果。

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没有空格,所以您的 exec 行应该是(假设您通过 cygwin 在 Windows 上运行或在基于 **nix 的系统上运行)

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