私はこれらのJavaファイルを持っています:
LDF1File.java
LDFFile.java <-- super class
これらのクラス ファイルを生成します。
LDF1File.class -- there is no inner class
LDF1File$1.class <-- no idea where this comes from
LDFFile.class
私の Python コードでは、LDF1File$1 をインポートできますが、LDF1File はインポートできません。私は得る:
>>> JClass('aero.blue.bdms.ldf.stream.LDF1File')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/eric/Software/anaconda3/envs/blue3/lib/python3.5/site-packages/JPype1-0.6.1-py3.5-linux-x86_64.egg/jpype/_jclass.py", line 55, in JClass
raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class aero.blue.bdms.ldf.stream.LDF1File not found
完全なコードは次のとおりです。
from jpype import *
startJVM(getDefaultJVMPath(), "-ea", '-Xms1024m', '-Xmx4096m', '-Djava.class.path=./jars/bdms-chunkjava-lib-1.0.9-SNAPSHOT.jar:./jars/bdms-ldfjava-lib-1.0.9-SNAPSHOT.jar')
LDF1File = JClass('aero.blue.bdms.ldf.stream.LDF1File')
shutdownJVM()
したがって、名前にドル記号が含まれるクラス ファイルがある理由がわかりません。また、JPype が LDF1File を見つけられない理由もわかりません。いくつかの可能な提案を除外するために、依存性注入、aspectj のもの、スプリング、グアバはありません。これは単なるJavaです。