-cp 选项在 JPype 中不起作用吗?

Is -cp option not working in JPype?

我正在使用带有 Python 2.7 的 jpype(来自加利福尼亚大学的 jpype 发行版),我正在尝试使用来自 jar 文件的 Java class。

如果我用

启动 JVM,它工作正常
startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=D:/jmf.jar")

但是,如果我使用

startJVM(getDefaultJVMPath(), "-ea", "-cp", "D:/jmf.jar")

startJVM(getDefaultJVMPath(), "-ea", "-cp D:/jmf.jar")

未找到该 jar 中的 classes...我还尝试将 class 路径设置为

set CLASSPATH=".;D:\jmf.jar"

这两个都没用。

此外,使用包含其他罐子的罐子似乎不起作用。这是我的发行版的问题还是 JPype 的普遍问题?

JPype 不直接调用 java 二进制文件。它使用 jni 库。可能 -cp 只是 java 二进制文件的一个选项。同样的情况可能适用于 CLASSPATH 环境。

如果您想在类路径中使用多个 jar 文件或目录,您可以使用 -Djava.class.path 并将元素与系统的路径分隔符连接起来。您可以为此目的使用 os.path.pathsep.join