java命令提示符在完成后不会关闭,即使在写入退出后也是如此
我有以下java代码
public static void main(String a[]) {
String location = "C:\\Users\\test\\output\\testProject";
File dir = new File("C:\\Users\\test\\cmds");
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "Start /wait","packageProject.bat",location);
pb.directory(dir);
Process p = null;
try {
p = pb.start();
p.waitFor();
}
catch (IOException e) {
e.printStackTrace();
}
catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println("Folder created");
}
批处理文件是
cd "C:\Users\test\output\test-master"
mvn clean install -DskipTests
exit
它是打包文件,但不是命令提示符。一旦进程完成,命令提示符就不会关闭
请建议
# 1 楼答案
你应该移除包装器CMD。EXE和start,直接调用批处理文件即可:
如果这个过程产生大量输出,如果不使用错误和输出流,可能会遇到第二个问题。您可以在后台线程中执行此操作,或者通过在
pb.start()
之前添加这些调用,将stdout/err发送到文件: