ここでlangdetectホストされている Java ライブラリを使用しようとしています。これほど簡単に使用することはできません:
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メソッドに関しては除きます。langdetectこのライブラリは、絶対ファイル パスを渡すとうまく機能しますが、最終的には、コードとそのコンパニオンprofilesディレクトリを同じ JAR ファイル内にパッケージ化する必要があると思います。
myapp.jar/
META-INF/
langdetect/
profiles/
af
bn
en
...etc.
com/
me/
myorg/
LangDetectAdaptor --> is what actually uses the code above
LangDetectAdaptor内部にある に、実行時に動作するために必要なと依存関係myapp.jarの両方が提供されるようにします。ただし、機能するために何を渡す必要があるかについては混乱しています。langdetect.jarjsonic.jarlangdetectDetectFactory.loadProfile
langdetectJAR にはディレクトリが付属していますが、profilesJAR 内から初期化する必要があります。ディレクトリをコピーしprofilesて JAR 内に配置しますか (上記で説明したように)、または内部に保持しlangdetect.jarてコード内からアクセスする方法はありますか?
ここで助けてくれてありがとう!
編集:ここでの問題は、このディレクトリに同langdetect 梱profilesされているが、JAR内から初期化する必要があることだと思います。profilesAPI は、独自の構成を考慮しDetectFactory.loadProfiles().except("fr")て、フランス語などを初期化したくない場合のようなメソッドを提供するように少し変更することでおそらく恩恵を受けるでしょう。しかし、これでも私の問題は解決しません!