正在尝试从 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.";
我正在尝试 运行 来自 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.";