Jythonの使用についてもう少し詳しく説明しましたが、これも私の問題を共有していました。これは最善の方法ではないかもしれないが、それは私のためにうまくいくことに注意してください。
私はあなたが文字列の引数を取り、文字列を返すJavaコードからモジュールバーでの関数fooを呼び出すようにしたいと仮定します。
PythonInterpreter interpreter = new PythonInterpreter();
// Append directory containing module to python search path and import it
interpreter.exec("import sys\n" + "sys.path.append(pathToModule)\n" +
"from bar import foo");
PyObject meth = interpreter.get("foo");
PyObject result = meth.__call__(new PyString("Test!"));
String real_result = (String) result.__tojava__(String.class);
sys.path.append()の部分は、場合にのみ必要ですあなたのモジュールはデフォルトでPythonの検索パスの一部ではありません。もしインポートやモジュールがエラーを見つけられなかった場合は、問題になるかもしれません。 また、JavaとPythonのバージョン間でオブジェクトをキャストする必要がある場合は、必要に応じてそれを調べる必要があります。これまではキャストが簡単なプリミティブ型が必要でした。
出典
2011-02-17 23:20:26
Voo
以下のコメントを読むと、OPはまったく異なる質問に対する答えを探しているようです。私はこれが閉鎖されていると警告しています...実際には私は質問を書き換えません。 –