java - JPype 头痛

标签 java python jpype

我找到了一些关于如何将用户构建的 .class 和 .jar 文件导入 JPype 的说明,但我似乎很难让任何东西正常工作。

有效方法:我可以导入标准的 java 内容并打印 HELLO WORLD 等。

我尝试过的一些方法:

我尝试将 -Djava.class.path 添加到包含相关类文件的 jar 的路径,添加到包含相关 .class 文件(向下几个文件夹)的目录结构中,如以及“-Djava.ext.dirs”。我已经重新编译并重新安装了不同的 JVM 位置。我尝试实例化的类是 Outer、public,并且有一个公共(public)构造函数。

我在 OSX 10.6 上使用 Python 2.6.1。

我当前的测试文件: 从 jpype 导入 *

startJVM(getDefaultJVMPath(), '-Djava.class.path=/Users/gestalt/Documents/msmexplorer_git/msmexplorer/MSMExplorer/build/classes')
java.lang.System.out.println("hello world")
msmexplorer = JPackage('org.joofee.meh.msmexplorer')
T = msmexplorer.MSMExplorer()
shutdownJVM()

如果我使用 JClass,我总是从 JPype 得到 ClassNotFound 异常;如果我使用 JPackage,我会收到 Package not callable 错误。基本上,JPype 找不到我的东西。

非常感谢!

编辑(可能有助于调试的东西......): 是否有一种直接的方法来打印哪些第三方 Java 类可用/已导入?

最佳答案

link 中引用了包不可调用错误) 看来您需要确保可以从工作目录访问 java 类文件。我不确定 jvm 类路径是如何发挥作用的,我以为你是怎么做到的。

您也可以尝试加载 org 包,然后通过该包访问其他包,如我共享的链接所示:

msmexplorer = JPackage('org').joofee.meh.msmexplorer T = msmexplorer.MSMExplorer()

关于java - JPype 头痛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11752371/

相关文章:

python - 如何安装带有 .whl 文件的 Python 包?

python-2.7 - 如何防止 ctypes.CDLL ("jvm.dll") 在 Windows Server 2016 上出现 "module not found"错误?

python - 取带有掩码元素的 numpy ndarray 的平均值

java - 迭代每个键有多个值的 HashMap

java - 更改部署在 tomcat 中的应用程序的上下文根

java - Hibernate EntityManager 不会在持久化时抛出 EntityExistsException

python - 从 or-tools 获得更多输出

python pandas HDF5Store 附加带有长字符串列的新数据框失败

java - Jpype 在 Java 中将 Py Dict 传递给 Map Obj 时没有匹配重载

Java套接字API : How to tell if a connection has been closed?