正在尝试从 java 调用 python 文件

Trying to call python file from java

我正在尝试 运行 来自 java 的 python 文件。

我试过了

ProcessBuilder pb = new ProcessBuilder("python", "pythonfile.py");
Process p = pb.start();

但这没有用。没有给出错误,但文件没有 运行.

我也试过了

Runtime.getRuntime().exec("python pythonfile.py");

得到了同样的结果。没有错误,但文件没有 运行.

尽管这应该无关紧要,但这是我正在尝试的 .py 文件 运行:

 import winsound
 Freq = 1500 # Set Frequency To 1500 Hertz
 Dur = 500 # Set Duration To 1000 ms == 1 second
 winsound.Beep(Freq,Dur)
 print "this file ran!!!"

不打印任何内容,也听不到噪音。由于各种原因,我无法使用Jython,所以请关注这个问题。谢谢!

解决方案:正如 Rahul Jha 所指出的,我的问题是我的 python 文件位于不正确的文件夹中。谢谢!!

我不知道为什么声音不起作用,但您没有看到任何打印输出,因为您没有将进程的输出流定向到任何地方。

尝试拨打 inheritIO。一个简单的例子:

new ProcessBuilder("echo", "Hello").inheritIO().start()

使用 BufferedReader 显示您的输出。

import java.io.*;
class Test {
public static void main(String args[]) {
    try {
        Process p = Runtime.getRuntime().exec(
                "python Test.py ");
        BufferedReader in = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        System.out.println(in.readLine());
    } catch (Exception e) {
    }
}

}

我的 python 文件是 Test.py

print "Hello World Python.";