找不到JPype类

JPype是一个了不起的项目,因为我允许JVM直接从实例化一个Python

不幸的是,我陷入了第一步。

A.java有源代码( ):

class A {

public A() {

super();

}

public String sayHi() {

return("Hello");

}

}

使用以下命令将其编译为类: javac A.java

因此,A.class位于 文件夹中。

我有以下Python源代码:

import os

import 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.py

Traceback (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 jpype

jpype.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

回到顶部