JNI - native method with ByteBuffer parameter
问题 I've got a method: public native void doSomething(ByteBuffer in, ByteBuffer out); Generated by javah C/C++ header of this method is: JNIEXPORT void JNICALL Java__MyClass_doSomething (JNIEnv *, jobject, jobject, jobject, jint, jint); How can I get a data array from jobject (that is a ByteBuffer instance) ? 回答1: Assuming you allocated the ByteBuffer using ByteBuffer.allocateDirect() you can use GetDirectBufferAddress jbyte* bbuf_in; jbyte* bbuf_out; bbuf_in = (*env)->GetDirectBufferAddress(env,