【问题标题】:JPype class not found, $1 with no inner class找不到 JPype 类,$1 没有内部类
【发布时间】:2016-12-15 19:50:52
【问题描述】:

我有这些 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。

【问题讨论】:

    标签: java python jpype


    【解决方案1】:

    我只在我的类路径中包含了我正在使用的包的 jar,并且没有任何依赖项。将所有依赖 jar 添加到类路径后,它就能够加载 LDF1File.java

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 2011-10-06
      • 1970-01-01
      • 2014-06-24
      • 2021-06-03
      • 2018-02-10
      • 2014-06-09
      • 2012-01-07
      • 2020-06-01
      相关资源
      最近更新 更多