0

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

4

0 回答 0