首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到JPype类

找不到JPype类
EN

Stack Overflow用户
提问于 2014-05-02 14:24:39
回答 2查看 7.6K关注 0票数 1

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

不幸的是,我被困在了婴儿的第一步。

我有(located in C:\tmp folder):的A.java源代码

代码语言:javascript
复制
class A {
    public A() {
        super();
    }
    public String sayHi() {
        return("Hello");
    }
}

它被编译为一个类,使用:javac A.java

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

我有以下Python源代码:

代码语言:javascript
复制
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()

当我运行它时,我会得到以下错误:

代码语言:javascript
复制
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相关的问题,但我无法意识到我做错了什么。

有什么线索吗?

编辑1:

问题依然存在。但是,为了补充我的问题,如果我使用本机java库(如: java.util ),代码运行时不会出现错误。例如,下面的代码起作用:

代码语言:javascript
复制
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。

编辑2:

问题解决了,见下面的答案..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-02 20:15:05

我解决了这个问题,我会在这里给出答案作为记录。

1) 源代码没有任何问题。

2)问题是我的Python是32位,我的java sdk (包括javac字节码编译器)是64位。我卸载了java sdk并重新安装了32位版本。完成了!解决了!

票数 6
EN

Stack Overflow用户

发布于 2016-04-26 07:07:40

试着像这样改变你的道路:

代码语言:javascript
复制
    jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path=c:\\tmp\')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23430466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档