尝试了很多次,博文里大多说的 是 classpath 的设置问题。但这个应该不会有问题的。
Hello.java
——————————————————————————————————————
public class Hello {
public void sayHello (){
System.out.println ("hello world.");
}
public String getStr (String str ){
System.out.println ("let's go .");
return str;
}
public static void main (String[] args ) {
System.out.println ("say hello.");
}
}
.py
______________________________________________________________
#!/usr/bin/python
#-*-coding:utf-8-*-
import jpype
externalClassPath = '/data/flowgw/lib/' #class 文件所在的目录
jpype.startJVM (jpype.getDefaultJVMPath (), "-DJava.class.path = " + externalClassPath )
jclass = jpype.JClass ('Hello')
obj = jclass () # new 一个 Demo 对象
obj.sayHello () #打印 hello world
jpype.shutdownJVM ()
[ ERROR ]
————————————————————————————————————
[resin_ana@fg-test lib]$ python
pype_test1.py Traceback (most recent call last ):
File "
pype_test1.py", line 8, in <module>
jclass = jpype.JClass ('Hello')
File "/usr/local/lib/python2.7/site-packages/jpype/
_jclass.py", line 55, in JClass
raise _RUNTIMEEXCEPTION.PYEXC ("Class %s not found" % name )
jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class Hello not found
PS:在 redhat 中,使用 pip install jpype1 安装的,版本 jpype 0.6.1
其中,官方文档中说明了,混合了 32 位和 64 位 python 、 jdk 的是不行的,
我的 python 是 64 位的,而 java -version 显示
OpenJDK Runtime Environment (IcedTea6 1.10.4 ) (rhel-1.41.1.10.4.el6-x86_64 )
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode )
不知道是不是这个原因。
好几天了都没搞好,泪奔~~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/215920
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.