我正在尝试从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文件位于不正确的文件夹中。谢谢!!
答案 0 :(得分:0)
我不知道为什么声音不起作用,但是你没有看到任何打印输出,因为你没有在任何地方指导进程的输出流。
尝试拨打inheritIO
。一个简单的例子:
new ProcessBuilder("echo", "Hello").inheritIO().start()
答案 1 :(得分:0)
使用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.";