クラスファイルを一緒にjarするJava cdeがあります:
List<String> args = new ArrayList<String>();
String path = FileSystemUtils.JavaBin() + "\\jar.exe";
args.add(path);
args.add("-cfv");
args.add(jarName);
args.addAll(FileSystemUtils.getAllFiles(directory, ".class"));
ProcessBuilder pb = new ProcessBuilder(args);
File wd = new File(directory);
pb.directory(wd);
Process p = pb.start();
//Waiting for process to exit
p.waitFor();
int res = p.exitValue();
このコードはうまく機能します。ただし、一部のコンピューターでは、すべてではありませんが、7 つ以上のファイルがある場合p.waitFor();
、jar が作成されていても、決して返されません。
タスクマネージャを見てみると、本当にjar.exeが終了していませんでした....何が原因でしょうか?コマンド ラインから同じコマンドを手動で実行すると、すぐに終了します。
これは非常に奇妙に思えます。誰かがヒントを持っていますか?