2011-12-12 47 views
0

我用Java代碼來執行一個bat文件由下面的Java代碼通過java代碼(使用的Runtime.exec()方法)

String command = "cmd /C start C:/processFolder/paas.bat";   
Runtime rt = Runtime.getRuntime(); 
Process pr = rt.exec(command); 

這意味着它使戰爭文件執行的jar命令CVF將執行paas.bat文件做一些工作。在paas.bat中有一個命令:

jar cfv xxx.war */ . 

但是,它不會將所有文件和文件夾都打包到xxx.war中。有沒有人知道爲什麼會發生這種情況?謝謝!

回答

2

該命令使用當前工作目錄,它將與java程序不同。您可以更改腳本來執行cd然後調用jar命令。

cd /d <path to folder where this should execute from> 
jar .... 

請從命令中捕獲輸出,錯誤和異常(如果有)並添加到您的問題中。

(注#1可能更有效使用的工具,像螞蟻做這些任務螞蟻任務可以從java程序使用Ant庫被稱爲.. 注2 - 。不想ProcessBuilder推出新工藝)

+0

我認爲螞蟻解決方案,但是,我想嘗試打包沒有第三方lib的war文件。 –

+0

我會嘗試ProcessBuilder,謝謝:) –