检查连接jpype - java

时间:2017-06-09 09:44:54

标签: java python jvm jpype

有没有办法检查除了print语句之外的jpype和java之间的连接? 我已经在anaconda中安装了jpype(Windows 10 64bit,anaconda python27(64位)和来自anaconda云的jpype)。我可以导入jpype并创建javaclasses和javaojects。但是,当我试图获得一份印刷声明时,没有任何反应,我无法弄清楚原因。

from jpype import *
getDefaultJVMPath()

Out[2]: u'C:\\Program Files\\Java\\jre1.8.0_131\\bin\\server\\jvm.dll'

startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("JPYPE WORKS !")

没有打印声明

javaPackage = JPackage("java.lang")
javaClass = javaPackage.String
javaObject = javaClass("Hello, Jpype")
javaObject

Out[8]: <jpype._jclass.java.lang.String at 0xc1b8b70>

java.lang.System.out.println(javaObject)

没有打印声明

getDefaultJVMPath()是正确的。但我无法与jvm建立联系,我无法弄清楚它出错的地方。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用Jupyter Notebook时就是这种情况。如果您是在Python控制台中执行此操作或使用.py文件,则此方法效果很好。如果您想知道为什么它适用于getDefaultJVMPath(),这就是为什么

type(getDefaultJVMPath()) 

返回'str'。但是

type(java.lang.System.out.println("JPYPE WORKS !"))

返回“ NoneType”

希望有帮助!