我实现了Python应用程序和Java应用程序。 假设我的Python应用程序因此返回True。
我想通过Java应用程序运行Python应用程序,将Python应用程序的结果接收到我的Java应用程序中,并在我的Java应用程序中进行额外的计算。
我使用Java中的Process来完成这项任务。 在我的示例中,Python应用程序以config.ini文件作为参数运行。
String path = "C:\\Python_Project\\run_app.py configuration\\config.ini";
Process p = Runtime.getRuntime().exec("python " + path);
它不起作用。我没有从Python应用程序收到任何有趣的东西,Java应用程序没有失败。
我决定通过命令提示符运行它,发现运行失败,因为在我的一个内部文件中我使用了这样的导入: 来自inner_module导入Object1
这可能是问题吗?我应该从Python app目录运行它?但是如何?
我有两个问题:
这是改变运行我的python应用程序的路径吗?我从Java应用程序目录运行Java应用程序,我必须在Python应用程序目录中运行Python应用程序?如何更改透视图?
Process和exec的使用是否良好?我应该用别的吗? 我如何使用Process获取真正值的Python应用程序?
答案 0 :(得分:0)
您可以尝试ProcessBuilder,它允许您设置工作目录。类似的东西:
ProcessBuilder pb = new ProcessBuilder(program, argument);
pb.directory(new File("path/to/python/directory"));
Process process = pb.start();
您可以通过从process.getInputStream()
中读取来获取脚本的输出BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getIntputStream()));
String output;
while((output=reader.readLine()) != null)
System.out.println(output);