Для моего проекта я использую C ++ для вызова Java-класса, который использует NLP Natty Date Parser Library, используя JNI.
До использования библиотеки, когда я работал с простым классом 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;
}
Это функция в C ++, которая вызывает вышеупомянутую функцию Java.
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, который я вызываю. Ценю, если кто-нибудь может помочь. Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …