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 回答