Cで書かれたグラフライブラリのPythonインターフェース-igraph(ライブラリの名前)があります。このグラフ ライブラリに関連する Python モジュールを Java コードから呼び出す必要があります。このように、ライブラリのコアは c にあります。このコアは Python にインポートされており、コアに組み込まれている関数へのインターフェイスは Python で使用できます。私のプロジェクトの残りのコードは Java であるため、グラフ関数も Java で呼び出したいと考えています。Jython - Java で python モジュールを呼び出すことができるオプションがありました。Jython を試してみたところ、コアコードは C であり、Jython は python で ac dll としてインポートされたものをサポートしないため、私の場合は機能しないことがわかりました。また、c でグラフ ルーチンを直接呼び出す方法を選択することも考えました。つまり、Python コードを通過しません。Java から C コードを呼び出すことができる何かがあるに違いないと思いますが、私は C が得意ではないので、それを選びませんでした。私の最後の手段は、Java を使用してコマンドラインから Python インタープリターを実行するようです。しかし、それは汚くて恥知らずです。また、Python コードによって生成された結果を処理するには、結果をファイルに書き込み、Java で読み戻す必要があります。再び汚れた方法。誰でも私に提案できることはありますか?時間を割いてくださった皆様、ありがとうございました。誰でも私に提案できることはありますか?時間を割いてくださった皆様、ありがとうございました。誰でも私に提案できることはありますか?時間を割いてくださった皆様、ありがとうございました。
Igal さん、ご回答ありがとうございます。私はそれを見ていた。一見、単に python スクリプトを呼び出しているように見えます。
Jep jep = new Jep(false, SCRIPT_PATH, cl);
jep.set("query", query);
jep.runScript(SCRIPT_PATH + file);
jep.close();
コマンドラインからJavaコードを介してpythonインタープリターを呼び出した場合に行うことと非常によく似ています。
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("python test.py");
問題は、Python スクリプトによって生成された結果をどのように使用するかです。単純な方法は、それらをファイルに書き込んで Java で読み戻すことです。よりスマートなアプローチを探しています。とにかく提案をありがとう。