Запуск файла python в cmd через java-% 1 не является допустимым приложением Win32 - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь выполнить код Python с Java.Мой код:

public class PyTest {
    public static void main(String[] args) {
        Runtime.getRuntime().exec("python src\\gui.py");
    }
}

Трассировка стека: Исключение в потоке "main" java.io.IOException: Невозможно запустить программу "src \ gui.py": ошибка CreateProcess = 193,% 1 не является допустимым Win32application

Я знаю, что эта ошибка присутствует при выполнении кода Python с интерпретатором 32-битной версии на 64-битной машине.Однако на моей 64-битной машине установлены только 64-битные версии python.

1 Ответ

1 голос
/ 14 мая 2019

Это командная оболочка, которая знает, как запускать файлы по расширению, поэтому вам нужно вызвать программу оболочки Windows cmd.exe:

Runtime.getRuntime().exec("cmd.exe /c python src\\gui.py");

Как сказано в javadoc exec, предпочтительный способ запуска команд - ProcessBuilder, поэтому ваш код должен быть:

new ProcessBuilder("cmd.exe", "/c", "python", "src\\gui.py").start();

Вы даже можете изменить рабочий каталог следующим образом:

new ProcessBuilder("cmd.exe", "/c", "python", "gui.py")
        .directory(new File("src"))
        .start();
...