从java运行Linux命令行

时间:2012-07-22 01:38:10

标签: java bash shell command-line

我试图从Java代码执行一些Mac(linux的?)命令。我把这个短课作为一个例子。我尝试在这个论坛上阅读其他类似的问题,但无法修复它。

它给了我错误。

我试过了:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("/Users/xxxx/Documents/ABC");

出现拒绝访问的消息。并且下面的代码给出了错误。

这个问题 Want to invoke a linux shell command from Java 我已经谈过类似的问题,但我认为他们没有结束辩论。

我正在使用mac os 10.7。

public class Main {

    public static void main(String args[]) {

        try {

            Process p = Runtime.getRuntime().exec(new String[]{"bash","-c","ls /Users/xyz/Documents/ABC"});

            BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line=null;

            while((line=input.readLine()) != null) {
                System.out.println(line);
            }

            int exitVal = p.waitFor();
            System.out.println("Exited with error code "+exitVal);

        } catch(Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我使用完整路径“/ bin / bash”并使用了不同的目录,它完全正常。所以代码几乎是正确的。您只需要小心路径,目录权限,并可能想要使用完整路径。真的很感谢你的支持者。欢呼声