java Runtime.exec to run shell script - cannot open file

后端 未结 4 1990
悲&欢浪女
悲&欢浪女 2020-12-18 14:51

I am using Runtime.getRuntime().exec() to run a shell script from java code.

    String[] cmd = {\"sh\",  \"build.sh\", \"/Path/to my/sh file\"};
    try{
           


        
4条回答
  •  庸人自扰
    2020-12-18 15:41

    Use a ProcessBuilder and set the working directory of the process to the directory where your script actually is:

    final ProcessBuilder pb = new ProcessBuilder("/bin/sh", "script.sh", "whatever",
        "arguments", "go", "here");
    pb.directory(new File("/path/to/directory"));
    // redirect stdout, stderr, etc
    final Process p = pb.start();
    

    See the ProcessBuilder javadoc. It contains an example of what you can do. Runtime.exec() is passé :p

提交回复
热议问题