我正在使用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。有没有人知道为什么会这样?谢谢!
答案 0 :(得分:2)
该命令使用当前工作目录,该目录与java程序不同。您可以更改脚本以执行CD,然后调用jar命令。
cd /d <path to folder where this should execute from>
jar ....
请从命令中捕获输出,错误和异常(如果有)并添加到您的问题中。
(注意#1。使用像ant这样的工具来执行这些任务可能更有用。可以使用ant库从java程序调用ant中的任务。 注意#2 - 首选ProcessBuilder启动新流程。 )