Как передать массив из java в c++?
JNIEXPORT void JNICALL Java_SomeClass_someMethod(JNIEnv* env, jobject obj, jintArray array) {
    jsize size = (*env)->GetArrayLength(env, array);
    jint* buffer = (*env)->GetIntArrayElements(env, array, NULL);

    ...

    (*env)->ReleaseIntArrayElements(env, array, buffer, 0);
}
В последнем параметре JNI_ABORT стоит передавать в том случае, если нужны были данные из массива, но сам исходный массив изменять не надо. Если изменения в массиве нужно сохранить, то вместо JNI_ABORT надо передать 0.
Сериализуй данные во что-то языконезависимое,  например json, или какой-нибудь универсальный бинарный формат