找不到JPype类
JPype是一个了不起的项目,因为我允许JVM
直接从实例化一个Python
。
不幸的是,我陷入了第一步。
我A.java
有源代码( ):
class A { public A() {
super();
}
public String sayHi() {
return("Hello");
}
}
使用以下命令将其编译为类: javac A.java
因此,A.class位于 文件夹中。
我有以下Python
源代码:
import osimport jpype
jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path=c:\\tmp')
A = jpype.JClass("A")
a = A()
print a.sayHi()
jpype.shutdownJVM()
运行它时,出现以下错误:
C:\tmp>jpype_test.pyTraceback (most recent call last):
File "C:\tmp\jpype_test.py", line 10, in <module>
A = jpype.JClass("A")
File "C:\Python27\lib\site-packages\jpype\_jclass.py", line 54, in JClass
raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class A not found
由于找不到A类,可能是与CLASSPATH相关的问题,但是我无法意识到我做错了什么。
有什么线索吗?
问题仍然存在。但是,只是增加了我的问题,如果我使用本机Java库(例如:java.util),代码将运行而没有错误。例如,以下代码有效:
import jpypejpype.startJVM(jpype.getDefaultJVMPath())
util = jpype.JPackage("java.util")
al = util.ArrayList()
al.add(1)
al.add(2)
print al.size()
jpype.shutdownJVM()
并返回2。
问题已解决,请参见下面的答案…
回答:
我解决了问题,在此将答案留作记录。
1)
2)问题是my Python
是32位,而my java sdk
(包括javac字节码编译器)是64位。我卸载了,java
sdk然后重新安装了32位版本。做完了!解决了!
以上是 找不到JPype类 的全部内容, 来源链接: utcz.com/qa/400587.html