从Java异步调用Python
我想从Java调用Python代码。实现这一目标的最佳方式是什么,这样我就可以:从Java异步调用Python,java,python,asynchronous,callback,call,Java,Python,Asynchronous,Callback,Call,我想从Java调用Python代码。实现这一目标的最佳方式是什么,这样我就可以: 使用从Java传递的参数启动特定函数或脚本 使通信异步(我不想阻止用Java编写的用户界面,我想在Java和Python线程之间发送对象和参数) 这种应用程序的目标是创建用Java编写的GUI,它允许用户在Python执行某些工作时执行用Python编写的任务并在其间接收额外的输出。既然要异步调用Python程序,为什么不利用Java的多线程呢?基本上,您可以在单独的线程中调用Python代码。在最简单的(Ja
- 使用从Java传递的参数启动特定函数或脚本
- 使通信异步(我不想阻止用Java编写的用户界面,我想在Java和Python线程之间发送对象和参数)
这种应用程序的目标是创建用Java编写的GUI,它允许用户在Python执行某些工作时执行用Python编写的任务并在其间接收额外的输出。既然要异步调用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,但是想法还是一样的,你的主程序会产生线程,并且在不等待的情况下顺利运行套接字通信是独立于代码语言的,那么你尝试过什么呢?是的:)我想到了服务器解决方案,但我想知道是否有更像JNI的(比如我可以通过JNI从C回调到Java)你看过Jython吗?我可以给你一个开始的地方。谢谢!我来查一下:)