感谢您的帮助 我正在尝试从Java进程到Python进程写入和读取字符。 虽然另一种方法(从python打印并在Java进程中获取)可以正常工作,但Python进程似乎无法获取Java进程的输出。
以下是我要使用的代码:
JAVA
用于管理python进程的类
class Pyexe {
Process pypr;
BufferedReader pybuffreader;
BufferedWriter pybuffwriter;
public Pyexe(String filecmd) throws IOException{
pypr=Runtime.getRuntime().exec("py "+filecmd);
pybuffreader=new BufferedReader(new InputStreamReader(pypr.getInputStream()));
pybuffwriter=new BufferedWriter(new OutputStreamWriter(pypr.getOutputStream()));
}
public void Pyend(){
this.pypr.destroy();
}
}
主要:启动python进程,发送一个字符串,然后获取python输出
public class JavaLearn{
public static void main(String[]argv)throws IOException{
Pyexe pyexe=new Pyexe("c:/pathtofile/testpy.py");
pyexe.pybuffwriter.write("Have a nice day\n");
String line=pyexe.pybuffreader.readLine();
System.out.println(line);}
}
PYTHON 一个简单的脚本:获取input(),将其打印为小写
line=input()
print(line.lower())
启动后,python进程将无限期地等待输入。 如果我只使用:
print("Something".lower())
并使用Bufferedreader很好,Java进程从Python获取输出。
有什么想法吗? 预先谢谢你