将Python集成到Java中 - 我们可以直接调用.py文件吗?

时间:2016-03-14 06:33:19

标签: java python jython

我想了解Jython。我有一些用Python编写的算法,我想用Java集成。 Jython文档对我来说非常复杂。我可以从中获得的是,我可以通过嵌入它们来运行Java中的单个Python语句:

interp = new PythonInterpreter();
        interp.exec("import sys");
        interp.exec("print sys");

但我无法嵌入我的巨型算法。我需要运行py脚本。有没有办法做到这一点?我可以获得一个hello world示例,其中print("hello")语句是在py脚本文件中编写的,输出是在Java控制台上显示的吗?

1 个答案:

答案 0 :(得分:2)

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);
    }