【问题标题】:How to use a Tika custom parser in a jar file?如何在 jar 文件中使用 Tika 自定义解析器?
【发布时间】:2018-07-26 15:18:51
【问题描述】:

我正在尝试编写自定义 Apache Tika 解析器(用于 DICOM 医学图像),并将其作为插件打包到 jar 文件中。

我按照http://tika.apache.org/1.18/parser_guide.html的指示,将这些项目作为模型:

所以,我创建了一个 Maven 项目,在 resources 文件夹中编写了一个解析器类和一个 org.apache.tika.parser.Parser 文件,使用 mvn install 构建了项目,我现在有了一个 jar 文件。

我的问题是,如何让 Tika 使用这个新的解析器? Tika wiki 上的说明说:

要安装插件,请按照以下说明下载并 将 jar 放在您的类路径中。 Tika 会自动检测插件。

我尝试使用java -classpath /path/to/my-parser.jar ... 执行此操作,但它似乎不起作用:

java -classpath /path/to/my-parser.jar -jar tika-app-1.18.jar --list-parsers

例如,没有列出新的解析器。

我不是 java 人,我真的不确定“将 jar 放到你的类路径上”是什么意思。如果有人能指出我正确的方向,我将不胜感激!谢谢。

【问题讨论】:

  • 你不能结合-jar-classpath - 这是一个java命令行工具限制
  • @Gagravarr 好的,谢谢。那我可以在命令行上做吗?我把两者都放在类路径中?
  • 是的,java -classpath tika-app.jar:my-extra-parser.jar org.apache.tika.cli.TikaCLI --list-parsers 之类的东西应该这样做
  • @Gagravarr:非常感谢,它有效!您不想让您的评论成为答案,以便我接受吗?

标签: java maven apache-tika


【解决方案1】:

很遗憾,您犯了一个常见的 Java 新手错误 - 由于各种历史原因,java 程序不会同时接受 -jar-classpath 选项,并且会忽略您提供的 -classpath 部分。

如果您想在命令行上运行 Apache Tika 应用程序,并添加一个或两个额外的解析器 jar,您需要执行以下操作:

java -classpath tika-app.jar:my-extra-parser.jar org.apache.tika.cli.TikaCLI --list-parsers

当使用 both Tika App jar 您在类路径上的自定义额外 jar 运行时,这会调用主 Tika App 入口点(默认为 -jar)。

您可能还会发现Troubleshooting Apache Tika guide from the Tika wiki 在开发这样的自定义插件时很有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    相关资源
    最近更新 更多