我想使用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();
}
} }
但它不起作用。还有另一种方式吗?
答案 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
表示:“没有环境”定义。