将linux代码转换为Windows代码

时间:2013-12-30 04:14:39

标签: java linux windows

我在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

1 个答案:

答案 0 :(得分:2)

您正在尝试运行名为'top'的程序,该程序通常在unix / linux / freebsd操作系统下使用,以显示进程列表和cpu使用输出。

Vanilla Windows没有看起来像顶级的程序,但它确实有一个可以执行的名为“tasklist”的程序。输出不同,但您也可以使用它。

如果你想能够调用看起来像top的东西,你可以尝试安装像cygwin这样的类似linux的环境。