2

好的,所以我在网上搜索了可能的实现,但我设法找到的是通过 Jython 在 Java 平台上实现的 Django 项目。但我想做相反的事情,即在 Django 平台上实现/集成 java 项目(在我的例子中是 SAIKU 服务器)。

问题是,是否可能,如果是,请指出解决方案。

提前致谢 =)

4

2 回答 2

1

对于您的特定要求,我建议使用 RESTFul API 来访问 Saiku 服务器。

但是,如果您需要从 Python 运行 Java 类。

以下是可供您选择的选项:

  1. JCC——一个用于从 C++/Python 调用 Java 的 C++ 代码生成器。它产生通过 JNI 与 Java 虚拟机通信的 Python 扩展。正如它所暗示的,这将需要编译每个可能的调用。然而,这个项目是 PyLucene 项目的骨干。

  2. 代码网格。Java 的 C++ 代码生成器。

  3. Py4J Python 程序在 Python 解释器中运行,以动态访问 Java 虚拟机中的 Java 对象。

  4. JPype允许 python 程序完全访问 java 类库。它是通过在两个虚拟机中的本机级别进行接口来完成的。然而,这方面最近没有进展。

    一般来说,通过 REST 或 RCP 进行松耦合集成比基于 JNI 的紧耦合实现更容易维护。

于 2013-03-12T08:50:20.570 回答
0

没有办法在 Python 运行时中运行 Java(这听起来像是你想要的)。有 Java 到 Python 的“翻译器”可用,但它们很糟糕。老实说,如果您出于某种原因需要 Java 服务器和 Django 坐在同一个进程中,那么 Jython 就是您的最佳选择。

不过,除此之外还有很多选择:

  1. 为您的服务器实现 Python 绑定(有关示例,请参见PyLucene
  2. 在您的 Java 服务器中实现一个套接字服务器,Python 可以直接与之对话
于 2013-03-12T08:14:07.127 回答