gpt4 book ai didi

java - Apache Tika - PrintWriter 适用于本地 Windows 机器,但不适用于 Linux 机器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:03 28 4
gpt4 key购买 nike

我被难住了。如果我对文件路径进行硬编码,则此脚本在我的 Windows 机器上的 Eclipse 中运行良好。如果我尝试接受参数并在我的边缘节点(一个 linux 机器)上运行它,它不会抛出任何特定的错误,但只会留下一个空的输出文件。我一定是错过了一些愚蠢的东西,但我没有看到它。有人知道发生了什么事吗?

package com.trv.cbia.de.tika;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;


public class DocParser {

public Map<String, Object> processRecord(String path) {
Map<String, Object> map = new HashMap<String, Object>();
String docPath = path;
try{
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
InputStream inputstream = new FileInputStream(new File(docPath));
ParseContext pcontext = new ParseContext();
Parser pdfparser = new AutoDetectParser();
pdfparser.parse(inputstream, handler, metadata, pcontext);
map.put("text", handler.toString().replaceAll("\n|\r|\t", " "));
map.put("title", metadata.get(TikaCoreProperties.TITLE));
map.put("pageCount", metadata.get("xmpTPg:NPages"));

} catch (IOException ex){
System.out.println("Caught IOException:" + ex.getMessage());
}
catch(TikaException tx) {
System.out.println("Caught TikaException: " + tx.getMessage());
}
catch(SAXException sx){

System.out.println("Caught SAXException: " + sx.getMessage());

}

return map;
}

public static void main(String args[]){


String file = args[0];
String out = args[1];
DocParser textExtract = new DocParser();
Map<String, Object> extractedMap = textExtract.processRecord(file);
try {
PrintWriter writer = new PrintWriter(out,"UTF-8");
writer.println(extractedMap.get("text"));
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

}

}

最佳答案

最终我需要将 tika-app-1.13.jar 添加到我的类路径中。它从未泄露任何类路径错误。我不得不通过一堆 apache 邮件列表来寻找有类似问题的人。在这里发布解决方案以防其他人遇到它。

关于java - Apache Tika - PrintWriter 适用于本地 Windows 机器,但不适用于 Linux 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257557/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com