В настоящее время я работаю над веб-приложением, которое включает монтирование диска и извлечение файла tar.gz, все на Java. Поскольку приложение работает в среде Linux, я решил попробовать использовать команды Unix, такие как «mount» и «tar».
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 в терминале работает нормально, но завершается неудачно, когда FIRST запускается в Java. Второй метод proc.waitFor () возвращает код завершения 2. Однако выполнение этого кода после первой неудачной попытки работает нормально. У меня такое ощущение, что проблема в том, что waitFor () не ждет, пока команда mount полностью не завершится. Я что-то упустил в своем коде?
Кроме того, я бы предпочел сделать все это на Java, но мне было очень трудно понять, как распаковать файл, поэтому я использую этот подход. (о, если кто-нибудь может сказать мне, как это сделать, я был бы очень счастлив). Будем благодарны за любые предложения!