Jav*_*uth 5 python java jython python-3.x
我发现这是从 java 运行(使用 exec() 方法)python 脚本的方法之一。我在 python 文件中有一个简单的打印语句。但是,我的程序在运行时什么也没做。它既不打印用 python 文件编写的语句也不抛出异常。该程序只是终止什么都不做:
Process p = Runtime.getRuntime().exec("C:\\Python\\Python36-32\\python.exe C:\\test2.py");
Run Code Online (Sandbox Code Playgroud)
即使这不是创建输出文件:
Process p = Runtime.getRuntime().exec("C:\\Python\\Python36-32\\python.exe C:\\test2.py output.txt 2>&1");
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我想你可以用 ProcessBuilder 类试试你的运气。
如果我正确地阅读了 Oracle 文档,则默认情况下 std 输入和输出将定向到管道,但ProcessBuilder 有一个简单的方法可让您将输出(或输入)显式设置为系统上的文件或其他文件。
如果您希望 Python 程序使用与 Java 程序相同的输出(可能是 stdout 和 stderr),您可以像这样使用 stg:
ProcessBuilder pb = new ProcessBuilder("C:\\Python\\Python36-32\\python.exe", "C:\\test2.py");
pb.redirectOutput(Redirect.INHERIT);
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |