У меня есть файл 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 "to" int argv, char ** argc ", спасибо.
РЕДАКТИРОВАТЬ:
Я ДУМАЮ, ЧТО СДЕЛАЛ ОШИБКУ
Собственный метод Java в myClass.java должен иметь видpublic native int init (int argv, char[][] argc);
. Таким образом, после javah создается
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 }