从Java执行本机OS命令时没有输出

时间:2015-11-02 08:53:39

标签: java

我需要从我的java应用程序运行命令并处理它的输出。 代码如下所示:

public static void readAllOutput(){
        try {
            final String cmd = new String("find ~ -iname \"screen*\"");
            System.out.println(cmd);
            Process ps = Runtime.getRuntime().exec(cmd);
//          ps.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(ps.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException /*| InterruptedException*/ e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

当我从OS执行此命令时,我有一个很大的输出,但在我的Java应用程序中,输出是emty。

1 个答案:

答案 0 :(得分:2)

你需要使用

getRuntime().exec( new String[] { "find", "~", "-iname","screen*"} );

或尝试

getRuntime().exec( new String[] { "find", "~", "-iname","\"screen*\""} );

以接受参数作为双引号。