Я написал простую java-программу для вызова командного файла. Проблема в том, что когда я запускаю эту программу Java, ничего не происходит, командный файл не выполняется. Но когда я запускаю одну и ту же программу в режиме отладки, идущей по очереди, тогда пакетный файл запускается.Вызов программы Java перед запуском командного файла
Проблема, которую я подозреваю здесь, это мой JVM, который завершает работу до того, как мой процесс на самом деле заканчивается. Я могу поместить в Thread.sleep(), но я не хочу этого делать. Есть ли другой способ, чтобы мой процесс был завершен, а затем JVM отключается.
public static void main(String[] args) {
String batchFilePath = "D:\\MyDir";
String batchFileName = "callMe.bat";
executeBatchFile(batchFilePath, batchFileName);
}
public static void executeBatchFile(String filePath, String fileName) {
try {
List cmdAndArgs = Arrays.asList("cmd", "/c", fileName);
ProcessBuilder pb = new ProcessBuilder(cmdAndArgs);
pb.directory(new File(filePath));
Process p = pb.start();
} catch (Exception e) {
e.printStackTrace();
}
thats correct, it works – user85
@usb рад, что это сработало, пожалуйста, примите ответ, чтобы помочь другим, сталкивающимся с тем же вызовом. –