2012-03-23 107 views
0

我有許多腳本,我在Windowscygwin之間運行。從Java運行腳本

無論何時使用新的沙盒,這些腳本文件都需要手動編輯。

因此,我正在考慮編寫一個基於用戶UI設置自動編輯腳本的UI應用程序Java

我讀過幾篇關於從Java運行腳本文件的帖子,但沒有看到有關如何在Windowscygwin之間運行它們的任何信息。

有沒有其他人做過這件事或知道以前的帖子,他們可以引薦我?

+0

你想編輯一個文件,或者運行一個腳本嗎? – Maxpm 2012-03-23 13:22:18

+0

我試圖運行腳本,但假設我可以根據用戶從用戶界面輸入的設置從Java內部編輯文件。 – user25029 2012-03-23 21:46:49

回答

0

如果cygwin位於您的路徑上,則可以像執行Java一樣的其他外部程序來執行它。

注:你必須從實際代碼的並行線程讀取流!這只是一個概念驗證通過Windows上的cygwin運行bash腳本!

Process process = Runtime.getRuntime().exec("bash -c ./script.sh"); 
InputStream inputStream = process.getInputStream(); 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
String line; 
while ((line = bufferedReader.readLine()) != null) { 
    System.out.println(line); 
} 
+0

您建議「您可以像執行Java的任何其他外部程序一樣執行它」。 在Windows上運行Linux腳本時,我必須:1)將cygwin 2)從cygwin會話cd/cygdrive/d/....運行到腳本文件所在的位置3)運行腳本./script ... 我看不出所有這些如何像Windows上的其他命令一樣運行;例如: .exec(「./ script.sh」); 謝謝 格雷厄姆 – user25029 2012-03-23 21:44:51

0

如果您執行在Cygwin的發現Cygwin.bat文件的安裝目錄,你會看到你會變成一個Cygwin的會話,然後你可以運行在一個cygwin會話你可以在所有命令。

如果您隨後將cygwin/bin目錄添加到您的路徑中,則可以像Linux環境一樣直接執行命令。

在我的情況下,我在PATH系統變量C:\cygwin64\bin的末尾添加了以下內容,我現在可以像普通會話一樣直接運行bash和其他命令。