You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Tika应用无法打印文件内容?tika.parseToString返回空字符串

问题

为何以下应用无法打印文件内容?

代码示例:

package org.example;

import org.apache.tika.Tika;
import java.io.File;

public class TikaFirstTry {
    public static void main(String[] args) throws Exception {
        Tika tika = new Tika();

        for (String fileName : args){
            System.out.println(fileName);
            String text = tika.parseToString(new File(fileName));
            System.out.println("text is: " + text);
        }
    }
}

文件foo.txt内容:

pizzaaaaa

程序输出:

C:/Users/me/Desktop/foo.txt
text is: 

且未抛出任何异常。

Maven依赖配置如下:

<dependencies>
  <dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-async-cli</artifactId>
    <version>2.7.1-SNAPSHOT</version>
  </dependency>
</dependencies>

解决方案

问题出在你引入的Maven依赖上。tika-async-cli是Apache Tika的异步命令行工具专用包,它并未包含处理文本文件所需的核心解析器组件,所以调用parseToString时无法解析文件内容,但因为缺失的不是基础核心类,所以不会抛出异常。

你需要替换为合适的依赖,推荐使用tika-core搭配包含标准解析器的tika-parsers-standard-package,也可以直接用tika-core加tika-parsers-all(包含所有解析器,适合快速测试)。

修改后的Maven依赖示例:

<dependencies>
  <dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>2.7.0</version> <!-- 建议使用稳定版,而非SNAPSHOT -->
  </dependency>
  <dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers-standard-package</artifactId>
    <version>2.7.0</version>
    <type>pom</type>
  </dependency>
</dependencies>

替换依赖后重新构建项目,运行程序就能正确解析并打印出foo.txt里的内容了。

内容的提问来源于stack exchange,提问作者IDK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:45:06