使用java获取当前进程所有者

Lol*_*lly 5 java unix

我想知道使用Java的Unix当前进程的所有者.我想找到当前服务器的所有者名称.我尝试在Runtime.getRuntime().exec()中运行"who is 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);
}
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题或任何想法如何使用Java找到当前进程的所有者?

Mat*_*ley 10

首先,我认为System.getProperty("user.name")应该为此工作

第二件事,你的代码没有返回任何东西的原因是因为命令是whoami没有空格所以你的exec行应该是(假设你通过cygwin或基于**nix的系统在windows上运行)

Process p = Runtime.getRuntime().exec("whoami");
Run Code Online (Sandbox Code Playgroud)

  • `who is i`在我的系统上返回空白 (2认同)