我在java中编写程序,我想运行并在windows中显示以下命令的结果(top -n 1,run / bin / ls /)。
String s = null;
ArrayList<String> outputs = new ArrayList<String>();
try {
// run the Unix command
Process p = Runtime.getRuntime().exec("top -n 1");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read the output from the command
while ((s = stdInput.readLine()) != null) {
outputs.add(s);
}
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
我收到以下错误
java.io.IOException: Cannot run program "top": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at code.ExecuteCommands.execute(ExecuteCommands.java:24)
at code.Server.process(Server.java:61)
at code.Server.main(Server.java:42)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 7 more
答案 0 :(得分:2)
您正在尝试运行名为'top'的程序,该程序通常在unix / linux / freebsd操作系统下使用,以显示进程列表和cpu使用输出。
Vanilla Windows没有看起来像顶级的程序,但它确实有一个可以执行的名为“tasklist”的程序。输出不同,但您也可以使用它。
如果你想能够调用看起来像top的东西,你可以尝试安装像cygwin这样的类似linux的环境。