Ранее у меня был файл Python Sconscript, который я хотел запустить, но поскольку это не сработало, я решил вызвать скрипт через пакетный файл, но этот метод пока не увенчался успехом.
Переведено автоматически
Ответ 1
Пакетные файлы не являются исполняемыми файлами. Для их запуска требуется приложение (например, cmd).
В UNIX файл сценария имеет флажок (#!) в начале файла, чтобы указать программу, которая его выполняет. Двойной щелчок в Windows выполняется проводником Windows. CreateProcess ничего об этом не знает.
Примечание: С помощью команды start \"\" откроется отдельное командное окно с пустым заголовком, в котором будут отображаться любые выходные данные пакетного файла. Он также должен работать только с "cmd / c build.bat", и в этом случае выходные данные могут быть прочитаны из подпроцесса на Java, если это необходимо.
Ответ 2
Иногда время процесса выполнения потока превышает время процесса ожидания потока JVM, обычно это происходит, когда процесс, который вы вызываете, требует некоторого времени для обработки, используйте команду waitFor() следующим образом:
try{ Processp= Runtime.getRuntime().exec("file location here, don't forget using / instead of \\ to make it interoperable"); p.waitFor();
}catch( IOException ex ){ //Validate the case the file can't be accesed (not enought permissions)
}catch( InterruptedException ex ){ //Validate the case the process is being stopped by some external situation
}
Таким образом, JVM остановится до тех пор, пока вызываемый вами процесс не будет завершен, прежде чем он продолжит работу со стеком выполнения потока.