![](/img/trans.png)
[英]Tika 1.14: getting java.lang.NullPointerException for PDFTextStripper
[英]PDFTextStripper NullPointerException
我正在尝试使用apache PDFBox(1.8.9)从Java中的PDF文件中获取一些数据。 我在我的buildpath和classpath中添加了jar(在Eclipse-Mars中)
创建PDFTextStripper
对象时出现空指针异常。
import java.io.File;
import org.apache.pdfbox.util.PDFTextStripper;
import org.apache.pdfbox.pdmodel.PDDocument;
public class MainClass {
public static void main(String[] args) {
PDDocument pd ;
try{
StringBuilder sb = new StringBuilder();
File input = new File("C:\\Result.pdf");
pd = PDDocument.load(input);
PDFTextStripper s = new PDFTextStripper();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我得到的错误是:
java.lang.NullPointerException
at org.apache.pdfbox.util.TextNormalize.findICU4J(TextNormalize.java:54)
at org.apache.pdfbox.util.TextNormalize.<init>(TextNormalize.java:45)
at org.apache.pdfbox.util.PDFTextStripper.<init>(PDFTextStripper.java:229)
at MainClass.main(MainClass.java:17)
(第17行是我尝试创建PDFTextStripper对象的位置)
检查TextStripper类的源,似乎出现了一个类未找到异常,返回为null。
您需要ICU4J jar作为依赖项。 这些类在运行时加载。
从TextStripper
// see if we can load the icu4j classes from the classpath
try
{
this.getClass().getClassLoader().loadClass("com.ibm.icu.text.Bidi");
this.getClass().getClassLoader().loadClass("com.ibm.icu.text.Normalizer");
icu4j = new ICU4JImpl();
}
catch (ClassNotFoundException e)
{
icu4j = null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.