この ガイドを使用してJython
、1 対 1 のJython
オブジェクト ファクトリを作成しています。
筆者はorg.jython.book.interfaces
、チュートリアル全体で使用する について語っています。
この手法を使用して Jython モジュールを利用するには、.py モジュールが sys.path に含まれていることを確認するか、Java コード内にモジュールへのパスをハードコーディングする必要があります。建物オブジェクトを作成するための Java インターフェイスを実装する Python モジュール
from org.jython.book.interfaces import BuildingType
jython.jar
見つけたものはすべてインポートしましたが、ライブラリのこの部分は存在しません。彼のチュートリアルでは、building.py
、buildingType.java
、およびを作成しbuildingFactory.java
ます。
アプリがヒットして実行を継続できない私のコードは次のとおりです。
package my.irondb_datdiff;
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;
public class DiffFactory {
private PyObject diffClass;
public DiffFactory() {
PythonInterpreter pyin = new PythonInterpreter();
pyin.exec("from make_diff_from_irons import make_diff_from_irons");
diffClass = pyin.get("make_diff_from_irons");
}
public make_Diff run(String export, String source, String target) {
PyObject diffObject = diffClass.__call__(
new PyString(export),
new PyString(source),
new PyString(target));
return (make_Diff)diffObject.__tojava__(make_Diff.class);
}
}
そして、「実行」を実行した後にファイルにヒットする行は次のとおりです。
from my.irondb_datdiff import make_Diff
これらのバージョンを作成しましたが、モジュールが存在しないというエラーが表示されます。これは、ライブラリに適切なモジュールが見つからないため、インターフェイスをインポートしていないためだと確信しています。
何かご意見は?
(また、別のポスターがチュートリアルのこの正確なステップについて同様の質問をしたことを認識していますが、この質問は異なり、他のポスターの回答は私の質問に答えませんでした.重複としてマークしないでください。)