我找到了几个关于如何将用户构建的.class和.jar文件导入JPype的说明,但我似乎遇到了很多问题。
工作原理:我可以导入标准的java内容并打印HELLO WORLD等等。
下面是我尝试过的一些方法:
我尝试过将路径为包含相关类文件的jar的-Djava.class.path添加到包含相关.class文件以及“-Djava.ext.dirs”的目录结构中(下面几个文件夹)。我已经使用不同的JVM位置重新编译和安装。我尝试实例化的类是外部的,公共的,并且有一个公共构造函数。
我在OSX 10.6上使用Python 2.6.1。
我当前的测试文件: from jpype import *
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类是可用的/导入的?
发布于 2012-08-02 15:59:30
在此link中引用了包不可调用错误)似乎您需要确保可以从工作目录访问java类文件。我不确定jvm类路径是如何起作用的,我会想你是怎么做的。
您还可以尝试加载org包,然后通过该包转到其他包,如我共享的链接所示:
msmexplorer = JPackage('org').joofee.meh.msmexplorer T= msmexplorer.MSMExplorer()
https://stackoverflow.com/questions/11752371
复制相似问题