わかりましたので、可能な実装をネットで検索しましたが、Jythonを介したJavaプラットフォームでのDjangoプロジェクトの実装しか見つかりませんでした。しかし、私は逆のことをしたいと思っています。つまり、Django プラットフォームで Java プロジェクト (私の場合は SAIKU サーバー) を実装/統合します。
問題は、それが可能かということです。可能であれば、解決策を教えてください。
事前に感謝=)
わかりましたので、可能な実装をネットで検索しましたが、Jythonを介したJavaプラットフォームでのDjangoプロジェクトの実装しか見つかりませんでした。しかし、私は逆のことをしたいと思っています。つまり、Django プラットフォームで Java プロジェクト (私の場合は SAIKU サーバー) を実装/統合します。
問題は、それが可能かということです。可能であれば、解決策を教えてください。
事前に感謝=)
特定の要件については、RESTFulAPIを使用してSaikuサーバーにアクセスすることをお勧めします。
ただし、PythonからJavaクラスを実行する必要がある場合。
利用できるオプションは次のとおりです。
JCC -C ++/PythonからJavaを呼び出すためのC++コードジェネレーター。これは、JNIを介してJava仮想マシンと通信するPython拡張機能を生成します。それが意味するように、これはすべての可能な呼び出しのコンパイルを必要とします。ただし、このプロジェクトはPyLuceneプロジェクトのバックボーンです。
CodeMesh。Java用のC++コードジェネレータ。
Py4J Pythonインタープリターで実行され、Java仮想マシンのJavaオブジェクトに動的にアクセスするPythonプログラム。
JPypeは、PythonプログラムにJavaクラスライブラリへのフルアクセスを許可します。これは、両方の仮想マシンのネイティブレベルでのインターフェイスを介して行われます。ただし、この面での最近の開発はありません。
一般に、RESTまたはRCPを介した疎結合の統合は、密結合のJNIベースの実装よりも保守が容易です。
Python ランタイム内で Java を実行する方法はありません (これはあなたが望んでいるように思えます)。Java から Python への「トランスレータ」が利用可能ですが、ひどいものです。正直なところ、何らかの理由で Java サーバーと Django を同じプロセス内に配置する必要がある場合は、Jython が最適です。
ただし、それ以外にも多くのオプションがあります。