将Python集成到Java中-我们可以直接调用.py文件吗?
我想了解Jython。我有一些用Python编写的算法,我想将它们集成到Java中。Jython文档对我来说非常复杂。我所能从中得到的是,我可以通过如下方式嵌入它们,从Java运行单个Python语句:将Python集成到Java中-我们可以直接调用.py文件吗?,java,python,jython,Java,Python,Jython,我想了解Jython。我有一些用Python编写的算法,我想将它们集成到Java中。Jython文档对我来说非常复杂。我所能从中得到的是,我可以通过如下方式嵌入它们,从Java运行单个Python语句: interp = new PythonInterpreter(); interp.exec("import sys"); interp.exec("print sys"); 但我不能像那样嵌入我的巨型算法。我需要运行py脚本。有办法吗?我可以得到一个hello-
interp = new PythonInterpreter();
interp.exec("import sys");
interp.exec("print sys");
但我不能像那样嵌入我的巨型算法。我需要运行py脚本。有办法吗?我可以得到一个hello-world示例,其中
print(“hello”)
语句写在py脚本文件中,输出显示在Java控制台上吗?Jython这是更好的选择
否则,您可以使用命令提示符从java运行python程序,并用java收集输出
例如:
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "C:\\Python27\\python.exe C:\\Users\\Bens\\Desktop\\test.py");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
Jython是更好的选择 否则,您可以使用命令提示符从java运行python程序,并用java收集输出 例如:
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "C:\\Python27\\python.exe C:\\Users\\Bens\\Desktop\\test.py");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
嘿,你能指导我如何在Linux上做这件事吗?你可以使用String[]commands=newstring[]{“/bin/sh”,“-c”,command};ProcessBuilder=新的ProcessBuilder(命令);如果使用debian,您可以尝试使用“/bin/bash”而不是“/bin/sh”,那么您可以指导我如何在Linux上执行此操作吗?您可以使用String[]commands=new String[]{/bin/sh”,“-c”,command};ProcessBuilder=新的ProcessBuilder(命令);如果使用debian,您可以尝试使用“/bin/bash”而不是“/bin/sh”,那么您不能使用
PythonInterpreter.execfile()
?请参阅。您不能使用PythonInterpreter.execfile()
?看见