我正在尝试使用一个名为langdetect的
Java库托管
here.它使用起来非常简单:
Detector detector; String langDetected = ""; try { String path = "C:/Users/myUser/Desktop/jars/langdetect/profiles"; DetectorFactory.loadProfile(path); detector = DetectorFactory.create(); detector.append(text); langDetected = detector.detect(); } catch (LangDetectException e) { throw e; } return langDetected;
除了DetectFactory.loadProfile方法之外.当我传递一个绝对文件路径时,这个库工作得很好,但最终我想我需要在同一个JAR文件中打包我的代码和langdetect的配套文件目录:
myapp.jar/ Meta-INF/ langdetect/ profiles/ af bn en ...etc. com/ me/ myorg/ LangDetectAdaptor --> is what actually uses the code above
我将确保位于myapp.jar内的LangDetectAdaptor提供了langdetect在运行时工作所需的langdetect.jar和jsonic.jar依赖项.但是我很困惑我需要传递给DetectFactory.loadProfile才能工作:
> langdetect JAR附带了profiles目录,但您需要从JAR内部初始化它.那么我是否要复制配置文件目录并将其放在我的JAR中(就像我在上面规定的那样),或者有没有办法将它保存在langdetect.jar中但是从我的代码中访问它?
在此先感谢您的帮助!
编辑:我认为这里的问题是langdetect附带此配置文件目录,但后来要求您从JAR内部初始化它. API可能会受益于稍微改变一下,只考虑配置文件自己的配置,然后提供像DetectFactory.loadProfiles()的方法.除了(“fr”),如果你不希望它初始化法语等等但这仍然无法解决我的问题!