私のプロジェクトでは、C++ を使用して、JNI を使用して、NLP Natty Date Parser Library を使用する Java クラスを呼び出しています。
ライブラリを使用する前は、ライブラリ依存関係のない単純な Java クラスを使用して文字列を C++ に送信した場合、問題はありませんでした。しかし、文字列を解析するためにそれぞれのライブラリを含めると、必要な結果が得られません。Java クラスがライブラリを呼び出すことができないと思われます。
これは私がJavaで呼び出している関数の例です
import com.joestelmach.natty.*;
public static boolean isValidCommand(String command){
List<DateGroup> sample;
Parser parser = new Parser(TimeZone.getDefault());
sample = parser.parse(command);
if(sample.get(LOCATION_OF_DATE).getDates().size() > MAX_LIMIT)
return TOO_MANY_DATES;
return true;
}
これは、前述の Java 関数を呼び出す C++ の関数です。
bool Wrapper::isValidCommand(string command){
if(_cls != 0) {
jmethodID mid = _env->GetStaticMethodID(_cls,"isValidCommand","(Ljava/lang/String;)Z");
if(mid != 0){
jboolean data = _env->CallStaticBooleanMethod(_cls,mid,_env->NewStringUTF(command.c_str()));
return data;
}
}
return false;
}
呼び出している Java クラスのライブラリ依存関係をリンクする方法がわかりません。誰かが助けてくれれば感謝します。前もって感謝します。