我正在尝试从Java程序中编译一个jar文件。当我运行代码时,它开始构建jar文件并保存大约24k,然后执行似乎停止并等待(我正在使用Process.waitFor()并且程序没有完成执行)。当我强制程序停止jar文件的大小跳转到大约45k。罐子应该是大约1300k。
我尝试创建批处理文件,然后使用ProcessBuilder
调用批处理文件,但同样的问题也出现了。批处理文件本身运行时效果很好。
这是我到目前为止的代码:
public static void buildJar() {
List<String> jarCmdArgs = new ArrayList<>();
jarCmdArgs.add("jar");
jarCmdArgs.add("cvfM");
jarCmdArgs.add(ROOT_DIRECTORY + File.separator + "my_jar.jar");
jarCmdArgs.add(".");
// jarCmdArgs.add("cmd.exe");
// jarCmdArgs.add("/C");
// jarCmdArgs.add(ROOT_DIRECTORY + File.separator + "make_jar.bat");
ProcessBuilder pb = new ProcessBuilder(jarCmdArgs);
pb.directory(new File(SRC_DIR_PATH));
try {
Process p = pb.start();
p.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
这是批处理文件的内容:
//cd to my working dir with all the files to put into the jar
jar cvfM my_jar.jar .