I’ve found plenty of tutorials / questions on Stackoverflow that deal with copying char arrays from C/JNI side into something like a byte[] in Java, but not the other way around.
I am using a native C library which expects a byte array. I simply want to get data from a byte[] in java, into preferably an unsigned char[] in C.
Long story short: What is the best way of copying data from a jBytearray in JNI? Is there any way to detect it’s size?
Here’s a working example I just lifted from my AS/400 JNI library to resolve a native user-queue pointer to test the queue’s existence – it copies the queue library and name from a Java byte array (already translated to job’s CCSID) into native code and uses it. Take note of the release function calls; these can be changed to copy the native array contents back into the Java byte arrays to move data the other way: