私は現在、ドライブのマウントとtar.gzファイルの抽出をすべてJavaで行うWebアプリケーションに取り組んでいます。アプリケーションはLinux環境で実行されるため、「mount」や「tar」などのUNIXコマンドを使用してみようと思いました。
Runtime runtime = Runtime.getRuntime();
Process proc;
String mountCommand = "mount -t cifs -o username=...";
String extractCommand = "tar xzf ..."
proc = runtime.exec(mountCommand);
proc.waitFor();
proc = runtime.exec(extractCommand);
proc.waitFor();
ターミナルでmountコマンドとextractコマンドを実行すると正常に機能しますが、Javaで最初に実行すると失敗します。2番目のproc.waitFor()は終了コード2を返します。ただし、最初の試行が失敗した後にこのコードを実行すると、正常に機能します。問題は、mountコマンドが完全に完了するまでwaitFor()が待機していないことだと感じています。コードに重要なものが欠けていますか?
また、これはすべてJavaで実行したいのですが、ファイルを解凍する方法を理解するのに非常に苦労したので、このアプローチを採用しています。(ああ、誰かがこれを行う方法を教えてくれるなら、私はとても幸せになるでしょう)。どんな提案でもmuuuuuuuuuuchに感謝します!