通过java代码执行jar cvf命令(使用Runtime.exec()方法)

时间:2011-12-12 08:49:31

标签: java command-line jar command war

我正在使用Java代码执行bat文件,以通过以下java代码生成war文件

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

这意味着它将执行paas.bat文件来完成一些工作。 paas.bat中有一个命令:

jar cfv xxx.war */ .

但是,它不会将所有文件和文件夹都装入xxx.war。有没有人知道为什么会这样?谢谢!

1 个答案:

答案 0 :(得分:2)

该命令使用当前工作目录,该目录与java程序不同。您可以更改脚本以执行CD,然后调用jar命令。

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

请从命令中捕获输出,错误和异常(如果有)并添加到您的问题中。

(注意#1。使用像ant这样的工具来执行这些任务可能更有用。可以使用ant库从java程序调用ant中的任务。 注意#2 - 首选ProcessBuilder启动新流程。 )