运行 python cmd 中的文件通过 java- %1 不是有效的 Win32 应用程序
Running python file in cmd through java- %1 is not a valid Win32 application
我正在尝试使用 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 错误=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
says, the preferred way to run commands is ProcessBuilder
的javadoc,所以你的代码应该是:
new ProcessBuilder("cmd.exe", "/c", "python", "src\gui.py").start();
您甚至可以更改工作目录:
new ProcessBuilder("cmd.exe", "/c", "python", "gui.py")
.directory(new File("src"))
.start();
我正在尝试使用 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 错误=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
says, the preferred way to run commands is ProcessBuilder
的javadoc,所以你的代码应该是:
new ProcessBuilder("cmd.exe", "/c", "python", "src\gui.py").start();
您甚至可以更改工作目录:
new ProcessBuilder("cmd.exe", "/c", "python", "gui.py")
.directory(new File("src"))
.start();