使用JNI调用具有库依赖项的Java函数 我的项目,我用C++调用一个使用NLP NATTY日期解析器库的java类,使用JNI ./P> 在使用库之前,当我用一个简单的java类工作时,没有任何依赖于库的依赖关系,将字符串发送给C++没有任何问题。但是一旦我包含了相应的库来解析字符串,我就不会得到我想要的结果。我怀疑Java类无法调用库

使用JNI调用具有库依赖项的Java函数 我的项目,我用C++调用一个使用NLP NATTY日期解析器库的java类,使用JNI ./P> 在使用库之前,当我用一个简单的java类工作时,没有任何依赖于库的依赖关系,将字符串发送给C++没有任何问题。但是一旦我包含了相应的库来解析字符串,我就不会得到我想要的结果。我怀疑Java类无法调用库,java,c++,jvm,java-native-interface,natty,Java,C++,Jvm,Java Native Interface,Natty,这是我在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(

这是我在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类的库依赖项。如果有人能帮忙,我将不胜感激。提前谢谢

您可以添加调试日志以查看调用是否到达java中的isValidCommand(String)方法吗?我注释掉了java函数中的所有代码行,即调用库的代码行,最后一行除外。i、 返回true语句。我在C++函数中得到了结果(真)。因此,该调用到达java函数isValidCommand。调用使用java本身中的库的java方法,并进行调试。您使用maven进行构建吗?我在Java本身中调用了该方法,它工作得非常好。但是问题只有在我从C++调用时才发生。在ISValueMug命令()中打印字符串“命令”,当从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;
}