У меня есть c ++ файл myCppTest.cpp, который имеет метод
int myFunction(int argv, char **argc) {
}
и
нативный метод Java в myClass.java
public native int myFunction (int argv, char[][] argc);
После генерации файла заголовка с использованием javah -jni myClass, у меня есть заголовок
JNIEXPORT jint JNICALL Java_JPTokenizer_init
(JNIEnv *, jobject, jint, jobjectArray);
В моем myClass.cpp я определил
JNIEXPORT jint JNICALL Java_JPTokenizer_init
(JNIEnv *env, jobject obj, jint argv, jobjectArray argc) {
//need to call int myFunction(int argv, char **argc) in myCppTest.cpp
}
Как я могу передать аргументы "jint argv, jobjectArray argc" в "int argv, char ** argc", спасибо.
РЕДАКТИРОВАТЬ: Я думаю, что я сделал ошибку
Нативный Java-метод в myClass.java должен быть
public native int init (int argv, char[][] argc);
Так что есть
JNIEXPORT jint JNICALL Java_myClass_init
(JNIEnv *, jobject, jint, jobjectArray);
генерируется после джавах
И в myClass.cpp у меня есть
JNIEXPORT jint JNICALL Java_myClass_init
(JNIEnv *env, jobject obj, jint argv, jobjectArray argc) {
//need to call int myFunction(int argv, char **argc) in myCppTest.cpp
}