这个问题已经在 Stack Overflow 上被问过了,顺便说一句,即使在阅读了提供的答案之后,我也没有设法添加MyOwnAnalyzer,所以我可以直接从 Luke使用它。
请有人可以帮助我以正确的方式做事,那就是如何以及如何做才能使MyOwnAnalyzer可以直接从 Luke 中使用?
我可以这样做(它不起作用,可能是我包含的 jar 不完整?):
java -cp .;d:\java\mylibs\MyOwnAnalyzer.jar -jar lukeall-3.5.0.jar
(MyOwnAnalyzer.jar是从 Eclipse 构建的,包含:子目录 com.MyCompany 中的MyOwnAnalyzer.java、MyOwnTokenizer.java 和MyOwnToken.java ... Eclipse 为我添加了META-INF和manifest.mf)
也许我在命令行中添加类路径和 MyOwnAnalyzer.jar 是错误的?
或者我必须从源代码构建 Luke,包括其目录中某处的 MyOwnAnalyzer?
或者是否还有其他内容要包含/编写,以便我的分析器可以使用并从 Luke 导入?(看起来有一种机制可以检测所有类的子类 Analyzer - MyOwnAnalyzer 已经声明为“ extends Analyzer
”)
顺便说一句,即使它不是真正相同的问题,但仍然在使用来自 Luke 的自定义分析器的同一主题中......我在使用我得到的选项卡分析器工具Error analyzing:com/google/common/io/CharStreams
时出现错误,这个库包含在一个 jar 中,我包括一个进行样本分析以检查的主体,单独使用时一切正常。如果我按照 JPountz 的解释使用它,来自 Luke,我可以从所有 Luke 选项卡中看到 MyOwnAnalyzer,但它不起作用!
从卢克代码源,我认为抛出异常的原因位于方法分析内部的某个地方。
注意:调用CharStreams.toString(input);
是将Reader
输入转换为内部的字符串MyOwnTokenizer
。