我想从Java调用Python代码。实现这一目标的最佳方式是什么,所以我可以:
此类应用程序的目标是创建用Java编写的GUI,允许用户执行Python编写的任务,并在Python执行某些工作时在其间接收额外的输出。
答案 0 :(得分:0)
既然你想异步调用Python程序,为什么不利用Java的多线程呢?基本上这个想法是你在单独的线程中调用Python代码。在最简单的(Java 8)形式中,这将是:
new Thread(() -> {
ProcessBuilder pb = new ProcessBuilder("python","mytest.py", param1, param2);
Process p = pb.start();
// more code to capture the output here
}).start();
或者你可以使用比java.util.concurrent.FutureTask更复杂的东西,但是想法仍然是一样的,你的主程序会生成线程,并且无需等待就可以顺利进行