2

わかりましたので、可能な実装をネットで検索しましたが、Jythonを介したJavaプラットフォームでのDjangoプロジェクトの実装しか見つかりませんでした。しかし、私は逆のことをしたいと思っています。つまり、Django プラットフォームで Java プロジェクト (私の場合は SAIKU サーバー) を実装/統合します。

問題は、それが可能かということです。可能であれば、解決策を教えてください。

事前に感謝=)

4

2 に答える 2

1

特定の要件については、RESTFulAPIを使用してSaikuサーバーにアクセスすることをお勧めします。

ただし、PythonからJavaクラスを実行する必要がある場合。

利用できるオプションは次のとおりです。

  1. JCC -C ++/PythonからJavaを呼び出すためのC++コードジェネレーター。これは、JNIを介してJava仮想マシンと通信するPython拡張機能を生成します。それが意味するように、これはすべての可能な呼び出しのコンパイルを必要とします。ただし、このプロジェクトはPyLuceneプロジェクトのバックボーンです。

  2. CodeMesh。Java用のC++コードジェネレータ。

  3. Py4J Pythonインタープリターで実行され、Java仮想マシンのJavaオブジェクトに動的にアクセスするPythonプログラム。

  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. Python が直接通信できる Java サーバー内にソケット サーバーを実装する
于 2013-03-12T08:14:07.127 に答える