有誰知道如何從java應用程序執行shell腳本? 我使用win 7開發java應用程序,腳本文件在我的硬盤上。如何從Java應用程序執行UNIX Shell腳本?
回答
您可以在java.lang.Runtime
類中使用exec()
系列方法。當然,如果不下載像MinGW或Cygwin這樣的軟件來支持它(也許你的意思是當你的程序在另一臺機器上運行時你會執行該腳本),那麼你不能在Windows機器上執行UNIX shell腳本。
您能否提供代碼狙擊如何使用MinGW或Cygwin? – itro 2012-02-27 10:24:54
這些都是您安裝的在Windows上提供UNIX命令行工具(即「bash」,「ls」,「cat」,「mv」和數百個)的環境。然後,您可以像在UNIX上一樣從Java運行它們 - 例如,請參閱@ SarathKumarSivan的答案。 – 2012-02-27 12:07:50
首先,要在Windows 7系統上執行Unix shell腳本,您需要一個Unix shell。有幾種可用的,包括cygwin。假設你使用bash(這些日子最常見),要執行的命令是bash -c scriptname
來執行你的腳本。如果您只是執行Windows cmd或bat文件,則該命令類似於cmd /c scriptname
您應檢查cmd的幫助以驗證此操作。
一旦你開始這個過程,你需要立即啓動一個線程開始讀取它的stdout。您需要從流程中獲取輸出流並開始讀取。如果你不這樣做,兩個過程之間的管道將被填滿,並且子過程將掛起。您還需要爲子進程的stderr執行相同的操作,除非在創建進程時使用該選項合併兩個流。
希望這將成爲你的目的:
import java.io.IOException;
import java.io.InputStream;
public class RunShellScript {
public static void runShellScript(String unixCommand) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", unixCommand);
processBuilder.redirectErrorStream(true);
Process shellProcess = processBuilder.start();
InputStream inputStream = shellProcess.getInputStream();
int consoleDisplay;
while((consoleDisplay=inputStream.read())!=-1) {
System.out.println(consoleDisplay);
}
try {
inputStream.close();
} catch (IOException iOException) { }
}
public static void main(String[] args) throws IOException, InterruptedException {
String unixCommand = "sh hello-world.sh";
runShellScript(unixCommand);
}
}
上面的代碼將運行腳本包含在hello-world.sh文件,它會顯示shell腳本控制檯上的輸出。
- 1. 通過JAVA應用程序運行unix shell腳本
- 2. 通過java程序執行shell腳本
- 3. 如何從Java小程序執行shell腳本
- 4. 如何從Java類執行shell腳本程序文件
- 5. 如何從unix shell腳本獲取java程序完成狀態?
- 6. 執行shell腳本程序
- 7. 如何使用java執行shell腳本
- 8. 訪問UNIX服務器並從java應用程序運行shell腳本
- 9. 從scala應用程序執行shell腳本
- 10. 如何從shell腳本調用另一個shell腳本的Unix
- 11. SAS程序調用UNIX Bash Shell腳本
- 12. 執行從Java,Shell腳本Shell腳本已經閱讀操作
- 13. 從Java代碼執行Shell腳本
- 14. 需要從java執行shell腳本
- 15. 從Java應用程序執行Pig
- 16. 如何從silverlight應用程序運行shell腳本?
- 17. 如何從Android應用程序運行shell腳本
- 18. 如何從我的Android應用程序執行shell腳本文件
- 19. 如何從bash shell執行.py腳本
- 20. 如何從php/html執行shell腳本?
- 21. 如何從LaTeX執行shell腳本?
- 22. 執行應用程序後運行shell腳本命令
- 23. 使用Java從Web應用程序執行R腳本
- 24. 從shell腳本執行symbolicatecrash
- 25. 從shell執行R腳本
- 26. 從shell腳本執行SQL
- 27. 從mac執行Shell腳本
- 28. 在shell腳本執行程序的linux
- 29. 在SHELL腳本上執行C程序
- 30. 在shell腳本中執行java程序時使用雙引號
類似於http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script-from-java-code – 2012-02-21 12:25:35
是什麼讓你認爲你可以在Windows 7上運行UNIX Shell腳本機器呢? – 2012-02-21 12:25:49
應用程序應該在windows上運行,而unix shell腳本應該通過該應用程序在Unix服務器上執行。 – itro 2012-02-22 09:13:32