0

私はこれらの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です。

4

1 に答える 1

0

クラスパスには、使用していたパッケージの jar のみを含め、依存関係は一切含めていませんでした。すべての依存関係 jar をクラスパスに追加すると、LDF1File.java をロードできました。

于 2016-12-15T21:32:57.363 に答える