我正在尝试使用一个名为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”),如果你不希望它初始化法语等等但这仍然无法解决我的问题!