2

我正在尝试使用 JPype 从 Python 调用 Apache Pdfbox,并且在实际导入类时遇到了一些困难。它似乎无法从类路径中的 jar 文件中读取它们。

from jpype import java, startJVM, shutdownJVM, JPackage, JClass, getDefaultJVMPath, nio
import sys, os, codecs

pdfbox_lib = "lib/pdfbox-1.6.0.jar"
classpath = '-Djava.class.path=' + pdfbox_lib + os.pathsep + '.'

startJVM(getDefaultJVMPath(), '-Xmx512m', classpath)

stream = java.io.FileInputStream(java.io.File("test.pdf"))

pdfparser = JPackage('org.apache.pdfbox.pdfparser')
parser = JClass('org.apache.pdfbox.pdfparser.PDFParser')

此时,脚本错误如下:

java.lang.ExceptionPyRaisable: java.lang.Exception: Class org.apache.pdfbox.pdfparser.PDFParser not found

我正在使用 Python 2.7 在 Linux 上运行,并且我知道 JPype 安装没有任何问题(如果有,流声明会出错)。我还尝试了类路径语句和 JPackage/JClass 语句的各种排列,似乎没有什么关系。任何建议将不胜感激!

4

1 回答 1

2

我想到了。需要将三个额外的 jar 添加到类路径中:fontbox-x.x.x.jarjempbox-x.x.x.jarcommons-logging.jar.

于 2011-07-20T18:55:50.643 回答