如何在 jar 文件中使用 Tika 自定义解析器?

How to use a Tika custom parser in a jar file?

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

我正在按照 http://tika.apache.org/1.18/parser_guide.html 的说明进行操作,并将这些项目作为模型:

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

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

To install a plugin, download it according to instructions below and drop the jar(s) on your classpath. Tika will auto detect the plugin.

我尝试用 java -classpath /path/to/my-parser.jar ... 来做到这一点,但它似乎不起作用:

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

没有列出新的解析器。

我不是java人,我真的不知道"drop the jar on your classpath"是什么意思。如果有人能指出我正确的方向,我将不胜感激!谢谢。

遗憾的是,您犯了一个常见的 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。

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