在Eclipse的Java代码运行时执行shell脚本

时间:2013-03-07 11:58:25

标签: java eclipse shell

我有一个shell脚本,我想从Java代码在Eclipse中执行。

我可以使用外部工具来运行脚本,但我希望脚本在Java代码执行期间运行,即Java代码应该调用脚本。

之前我使用“Process Builder”这样做但似乎Eclipse不支持该方法,因为当我给它所有权限时它说“找不到文件”。

知道如何从Eclipse中的Java代码运行脚本吗?

以下是代码:

        String line1 = null;
        String target = new String("/home/aditya_s/workspace/rs-test/src/iperf_parse.sh " + host + " " + "9000");
        while(line1 == null)
        {
            Process p1 = Runtime.getRuntime().exec(target);
            BufferedReader input1 = new BufferedReader(new InputStreamReader(p1.getInputStream()));
            System.out.println("Ran");
            line1 = input1.readLine();
            p1.destroy();
        }
        BW = Double.parseDouble(line1);

提示:右键单击shell脚本,然后转到“属性”。给“所有者”提供“读/写/执行”权限。默认情况下,“执行”权限不存在。因此,您可能会收到“无法执行script.sh”这样的错误。

3 个答案:

答案 0 :(得分:1)

Eclipse像往常一样运行你的java程序,因此ProcessBuilder也可以运行。您可能传递了错误的路径。如果路径是相对的,则它将相对于System.getProperty("user.dir")

答案 1 :(得分:0)

您应该可以使用以下内容,将shellscript替换为您要运行的脚本。

String s = "shellscript";
Process proc = Runtime.getRuntime().exec(s); 

答案 2 :(得分:0)

您应该查看ProcessBuilder