次のように Java からバッチ コマンドを実行します。
String command ="cmd /c " + mPathToZip + " a -tzip " + source
+ "foo.zip " + source + "* && exit";
try {
Runtime.getRuntime().exec(command).waitFor();
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
したがって、基本的にはコマンドを実行し、それが完了するまで待ってから他のことをする必要があります。
問題は、JVM が Runtime.getRuntime().exec(command).waitFor(); でスタックすることです。
何かを解凍するときにこれを試してみましたが、うまくいきましたが、今は何かを圧縮すると動かなくなります。また、手動でコマンドを試してみましたが、うまくいきました。
私はスレッドが初めてなので、助けていただければ幸いです。