对于我的项目,我使用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;
}
这是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类的库依赖项。感谢是否有人可以提供帮助。提前致谢。