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

在Eclipse的Java代码运行时执行shell脚本,java,eclipse,shell,Java,Eclipse,Shell,我有一个shell脚本,我想在Eclipse中从Java代码执行它 我可以使用外部工具来运行脚本,但我希望脚本在Java代码执行期间运行,即Java代码应该调用脚本 早些时候,我使用“Process Builder”来执行此操作,但Eclipse似乎不支持此方法,因为当我授予它所有权限时,它会说“未找到文件” 知道如何在Eclipse中从Java代码运行脚本吗 代码如下: String line1 = null; String target = new Strin

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

我可以使用外部工具来运行脚本,但我希望脚本在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”的错误。

您应该能够使用下面的命令,将shellscript替换为要运行的脚本

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

您应该能够使用以下命令,将shellscript替换为要运行的脚本

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

您应该了解

您应该了解

Eclipse像往常一样运行java程序,因此ProcessBuilder也可以工作。你可能走错了路。如果路径是相对的,那么它将相对于
System.getProperty(“user.dir”)

Eclipse会像往常一样运行java程序,因此ProcessBuilder也会工作。你可能走错了路。如果路径是相对的,它将相对于
System.getProperty(“user.dir”)

发布您的代码,否则我们无法帮助。发布您的代码,否则我们无法帮助。您好。现在我已经给出了脚本的完整路径,exec()命令可以正常工作。但问题是shell脚本无法捕获命令的输出。当我在终端中运行相同的代码时,它可以工作,但在eclipse中失败。上述问题中的代码已更新。如果您使用的是Runtime.exec,请参阅;如果您使用的是ProcessBuilder,请参阅。在任何情况下,都需要在数组中提供命令和参数。在您的情况下,这将起作用:
newstring[]{/home/aditya_s/workspace/rs test/src/iperf_parse.sh”,host,“9000”}
Hi。现在我已经给出了脚本的完整路径,exec()命令可以正常工作。但问题是shell脚本无法捕获命令的输出。当我在终端中运行相同的代码时,它可以工作,但在eclipse中失败。上述问题中的代码已更新。如果您使用的是Runtime.exec,请参阅;如果您使用的是ProcessBuilder,请参阅。在任何情况下,都需要在数组中提供命令和参数。在您的情况下,这将起作用:
newstring[]{/home/aditya_s/workspace/rs test/src/iperf_parse.sh”,host,“9000”}