我即将开始一个项目,我可能会使用PyQt或Pyside。
我需要与提供C ++和Java API的第三方服务器软件接口。 Java API更容易使用,因为您获得了异常,使用C ++库可以获得段错误。此外,使用Jython自动绑定Java API,而不存在C ++ API的Python绑定。
那么,CPython PyQt客户端应用程序如何能够与这些Java API进行通信?你会怎么做呢?
您是否在客户端上有另一个单独的Java进程序列化/ pickles对象并通过套接字与PyQt进程通信?
我不想重新发明轮子......这些类型的东西是否有某种标准接口?我应该研究一些技术? RPC,Corba等?
谢谢, 〜埃里克
答案 0 :(得分:4)
您可以通过JPype
从C-Python调用Java答案 1 :(得分:3)
请参阅我recommended执行的相关问题。如果你想用Python编写集成(像我一样),这似乎是解决这些问题的正确方法。
答案 2 :(得分:0)
如果你想保持完全的隔离并提高你的稳健性(第三方库下降而不是你的客户端,如果它是错误的我会建议那么)那么也许像CORBA这样的东西是前进的方式。不要忘记Java标配CORBA实现,因此您只需要从IDL生成C代理。
如果你想在进程中运行东西,那么Swig可能会很有用。它简化了不同语言的组件绑定。请特别注意generates bindings for Python and Java。
答案 3 :(得分:0)
如果标准不是重新发明轮子,则标准库中有SimpleXMLRPCServer
和xmlrpclib
模块。他们也应该在Jython工作。
答案 4 :(得分:0)
似乎有Qt的Java绑定。 (谷歌:“Java Qt绑定”)
也许从Jython中使用它们会更简单。
Qt Jambi:http://en.wikipedia.org/wiki/Qt_Jambi
或
Qt Java:http://sourceforge.net/projects/qtjava/
(我自己没试过,所以不知道他们的工作有多好。)
here是一个相关的SO线程。