jpypeはクラスをインスタンス化するためにデフォルトのコンストラクターを必要としますが、シングルトンにはデフォルトのコンストラクターがないか、getInstanceメソッドでインスタンスを強制的に取得するためにプライベートに保つため、シングルトンオブジェクトからgetInstanceにいくつかの問題に直面しています。インスタンスを取得しようとすると、次のエラーが表示されます。
Traceback (most recent call last):
File "/home/myuser/PycharmProjects/PythonTests/JavaTests.py", line 21, in <module>
service = jpype.JClass("com.classpackage.Service")
File "/usr/lib64/python2.7/site-packages/jpype/_jclass.py", line 54, in JClass
raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class com.classpackage.Service not found
以下のコード
import jpype
jpype.startJVM("/usr/java/jdk1.7.0_79/jre/lib/amd64/server/libjvm.so",
"-Djava.class.path=Service.jar")
jpype.java.lang.System.out.println("Hello!!!")
MODEL_PACKAGE = "com.classpackage"
SERVICE_PACKAGE = "com.classpackage"
info = jpype.JPackage(MODEL_PACKAGE).Info()
jpype.java.lang.System.out.println("Hello 2!!!")
#the error happens in this line below. This class service is a singleton.
service = jpype.JClass("com.classpackage.Service")
jpype.java.lang.System.out.println("Hello 3!!!")
jpype.shutdownJVM()
Pythonでjpypeを使用してJavaでシングルトンを使用する回避策を知っている人はいますか?
ありがとう。