我正在尝试使用 java 执行 python 代码。我的代码:
public class PyTest {
public static void main(String[] args) {
Runtime.getRuntime().exec("python src\\gui.py");
}
}
堆栈跟踪: 线程“main”中出现异常 java.io.IOException:无法运行程序“src\gui.py”:CreateProcess error=193,%1 不是有效的 Win32 应用程序
我知道,在 64 位机器上使用 32 位版本解释器执行 python 代码时会出现此错误。然而,在我的 64 位机器上只安装了 64 位版本的 python。
最佳答案
它是命令 shell 知道如何通过文件扩展名运行文件,因此您需要调用 cmd.exe
Windows shell 程序:
Runtime.getRuntime().exec("cmd.exe /c python src\\gui.py");
作为exec
的javadoc说,运行命令的首选方式是 ProcessBuilder
,所以你的代码应该是:
new ProcessBuilder("cmd.exe", "/c", "python", "src\\gui.py").start();
您甚至可以使用以下命令更改工作目录:
new ProcessBuilder("cmd.exe", "/c", "python", "gui.py")
.directory(new File("src"))
.start();
关于java - 通过 java-%1 在 cmd 中运行 python 文件不是有效的 Win32 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56134670/