簡體   English   中英

如何從 Java 程序調用 shell 腳本?

[英]How can I call a shell script from a Java program?

我使用 ubuntu 10.04 和 eclipse。 我創建了一個 shell 腳本,exam.sh:

#!/bin/bash 
echo "Hello World"

使用 chmod 755 考試.sh

在命令行上,我可以執行./exam.sh // ok command showing me Hello World

我想用 java 代碼調用這個exam.sh,這是我的 java 代碼:

public static void main(String[] args) {    
Runtime r = Runtime.getRuntime();
Process p = null;
String cmd[] = {"/bin/bash","cd","/home/erdi/Desktop", ".","/","exam.sh"};

try {
    p = r.exec(cmd);
    System.out.println("testing...");//ok
} catch (Exception e) {
    e.printStackTrace();
}
}

這不是function,我哪里弄錯了? 是的,我知道我可以通過谷歌搜索,但我沒有找到問題的答案。 它提供了有關此功能的操作方法和教程,但我沒有找到答案。

試試這個:

cmd[] = {"/bin/bash", "/home/ercan/Desktop/exam.sh"};

您可以直接在 shell 腳本上調用 bash。 要運行命令字符串(如cd ),您需要使用-c開關。

如果您需要腳本的工作目錄作為您的桌面,您可以使用Runtime.exec的另一個重載:

Process proc = Runtime.getRuntime().exec(cmd, new String[0], new File("/home/ercan/Desktop"));

或者, ProcessBuilder class 使執行過程更好一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM