使用ProcessBuilder制作jar文件并不是完整的

时间:2016-08-26 15:42:05

标签: java jar cmd processbuilder

我正在尝试从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 . 

0 个答案:

没有答案