我有一个java类文件,我想在我的Python框架中使用它。我知道jython,但我不想用jython运行我的整个Python代码,而是我更愿意导入以某种方式预编译它到python可用类,这样的事情可能吗?
答案 0 :(得分:1)
正如评论中已经提到的:任何java代码都需要一个完整的JVM才能运行。
也就是说,谷歌搜索你的问题,似乎有一个项目从Python进程中启动JVM并允许你与它进行交互:http://pythonhosted.org/javabridge/
尽管项目页面上的信息很少,但它确实在我的第二次尝试中安装了新的Python 3.6环境(我只需要在Fedora系统中直接安装之外的get this)。
即使你正常工作,你也可以考虑手动将Java代码重写为Python,如果它是一个主要由NumPy和SciPy驱动的系统中需要的单个类。
如果这个Javabridge项目失败,另一种方法是在一些RPC服务器中公开你的Java类,可能使用XMLRPC,或者只是作为功能较少的web服务,并使用网络协议从Python调用它。 既然你到了这里,你可以做很多事情,比如使用redis或rabbitmq作为经纪人来传递消息到你的Java代码,等等 - 所有这些方法的共同之处在于你必须得到你Java代码在JVM中的自己的进程中运行,并且在可以进行远程调用的服务器循环中运行。