从Java程序向Python脚本传递数据(字符串列表)的首选方式是什么。python脚本对数据执行一些处理,然后我需要将结果返回到Java程序中。
是否有一个框架可以让您轻松地做到这一点?
编辑:更具体的要求。
我的Java程序是一个调度器(每X分Y秒运行一次),它连接到一个外部服务,获取原始数据并将其发送到python。
我可以用Python重写所有内容,但这将占用我大量的时间。我在想有没有办法再利用我已经拥有的东西。
我想使用一个现有的Python脚本,只需很少的更改。我的python脚本使用了一堆外部库(例如numpy) 从Java传递到Python的数据是Json格式的,Python返回的数据也是Json格式的。
使用套接字是一个选项,但是我必须运行服务器进程。
听起来像是给Jython的工作!Jython是一个用Java编写的可嵌入的Python运行时。只要不需要在另一个进程中运行Python脚本(例如,希望能够杀死它,可能会使用大量内存等),这是迄今为止最好的方法。
几个月前,当我遇到类似的问题时,我就把它砍掉了。我避开了Jython,因为我想要单独的过程。Java代码是服务器,因为它侦听请求,但失败时不会重新连接。其概念是,类是具有套接字成员的扩展线程,因此发送和接收命令可以阻止对象线程并使主机线程不受影响。
Python代码:
Java代码:
SocketIPC.java:
CommandObject.java:
DoStuff.java版本:
如果您试图将Java和python一起工作,那么使用Jython简化您的生活。
假设您的python路径中有java库。下面是一段代码片段,让您了解使用java类有多么简单:
相关问题 更多 >
编程相关推荐