好的,所以我在网上搜索了可能的实现,但我设法找到的是通过 Jython 在 Java 平台上实现的 Django 项目。但我想做相反的事情,即在 Django 平台上实现/集成 java 项目(在我的例子中是 SAIKU 服务器)。
问题是,是否可能,如果是,请指出解决方案。
提前致谢 =)
好的,所以我在网上搜索了可能的实现,但我设法找到的是通过 Jython 在 Java 平台上实现的 Django 项目。但我想做相反的事情,即在 Django 平台上实现/集成 java 项目(在我的例子中是 SAIKU 服务器)。
问题是,是否可能,如果是,请指出解决方案。
提前致谢 =)
对于您的特定要求,我建议使用 RESTFul API 来访问 Saiku 服务器。
但是,如果您需要从 Python 运行 Java 类。
以下是可供您选择的选项:
JCC——一个用于从 C++/Python 调用 Java 的 C++ 代码生成器。它产生通过 JNI 与 Java 虚拟机通信的 Python 扩展。正如它所暗示的,这将需要编译每个可能的调用。然而,这个项目是 PyLucene 项目的骨干。
代码网格。Java 的 C++ 代码生成器。
Py4J Python 程序在 Python 解释器中运行,以动态访问 Java 虚拟机中的 Java 对象。
JPype允许 python 程序完全访问 java 类库。它是通过在两个虚拟机中的本机级别进行接口来完成的。然而,这方面最近没有进展。
一般来说,通过 REST 或 RCP 进行松耦合集成比基于 JNI 的紧耦合实现更容易维护。
没有办法在 Python 运行时中运行 Java(这听起来像是你想要的)。有 Java 到 Python 的“翻译器”可用,但它们很糟糕。老实说,如果您出于某种原因需要 Java 服务器和 Django 坐在同一个进程中,那么 Jython 就是您的最佳选择。
不过,除此之外还有很多选择: