/* field IDs for commonly used object fields */ static jfieldID td_fdID; static jfieldID td_eofID; static jfieldID td_eomID; static jfieldID IO_fd_fdID; /* Class: TapeDevice * Method: initFields * Signature: ()V */ JNIEXPORT void JNICALL Java_BasicTapeDevice_initFields (JNIEnv *env, jclass cls) { /* retrieve field IDs for the fd, eof, and eom member variables */ td_fdID = (*env)->GetFieldID(env, cls, "fd", "Ljava/io/FileDescriptor;"); td_eofID = (*env)->GetFieldID(env, cls, "eof", "Z"); td_eomID = (*env)->GetFieldID(env, cls, "eom", "Z"); /* retrieve the field ID for the private fd member of FileDescriptor */ cls = (*env)->FindClass(env, "java/io/FileDescriptor"); IO_fd_fdID = (*env)->GetFieldID(env, cls, "fd", "I"); }
Example 2: Initialization of the native library.