Java如何通过他的路径执行/运行特定文件

时间:2016-07-06 20:56:25

标签: java

我想使用Java执行/运行此文件。 路径是“/usr/local/studio.sh”

我试过了:

public class Main {

public static void main(String[] args) {

    String[] cmd = {"cd /usr/local","./studio.sh"};
    try {
        Process p = Runtime.getRuntime().exec(cmd);


    } catch (IOException  e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}  }

但它不起作用。还有另一种方式吗?

3 个答案:

答案 0 :(得分:0)

您可以使用ProcessBuilder(请参阅https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html)并使用directory(...)而不是cd命令设置工作目录。

最后是这样的:

ProcessBuilder pb = new ProcessBuilder("/usr/bin/bash","/usr/local/studio.sh")
pb.directory(...);
pb.redirectErrorStream(true);
Process p = pb.start();
IOUtils.copy(p.getInputStream(), System.out);
p.waitFor();

答案 1 :(得分:0)

这对我来说很好用:

    public static void main(String[] args) throws InterruptedException, IOException {

    String[] cmd = {"/usr/local/android-studio/bin/studio.sh"};
        Process p = Runtime.getRuntime().exec(cmd);

        p.waitFor();

}

感谢。

答案 2 :(得分:0)

Runtime API有一个方法来指示您要执行该方法的目录:

File folder = new File("/home/user/folder");
Process proc = Runtime.getRuntime().exec(command, null, folder);

在这种情况下null表示:“没有环境”定义。

Runtime API JavaDoc