我想知道使用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);
}
这段代码有什么问题或任何想法如何使用Java找到当前进程的所有者?
答案 0 :(得分:10)
首先,我认为System.getProperty("user.name")
应该适用于
第二件事,你的代码没有返回任何东西的原因是因为命令是whoami
没有空格所以你的exec行应该是(假设你通过cygwin或基于** nix的系统在windows上运行)
Process p = Runtime.getRuntime().exec("whoami");