1 // Purpose. Java calling C 2 // (Java passes int in, C returns int) 3 ////////////////////////////// JNIdemos.java \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 4 class JNIdemos { 5 public native static int toDouble( int in ); 6 static { 7 System.loadLibrary( "JNIdemos" ); 8 } 9 public static void main( String[] args ) { 10 System.out.println( "JNIdemos.java: entry" ); 11 System.out.println( " double is " 12 + toDouble( Integer.parseInt(args[0]) ) ); 13 System.out.println( "JNIdemos.java: exit" ); 14 } 15 } 16 /////////////////////////////// JNIdemos.h \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 17 /* DO NOT EDIT THIS FILE - it is machine generated ** 18 #include 19 /* Header for class JNIdemos ** 20 #ifndef _Included_JNIdemos 21 #define _Included_JNIdemos 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 /* 26 * Class: JNIdemos 27 * Method: toDouble 28 * Signature: (I)I 29 ** 30 JNIEXPORT jint JNICALL Java_JNIdemos_toDouble( JNIEnv*, jclass, jint ); 31 #ifdef __cplusplus 32 } 33 #endif 34 #endif 35 ////////////////////////////// JNIdemos.cpp \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 36 #include 37 #include "JNIdemos.h" 38 extern "C" { 39 JNIEXPORT jint JNICALL Java_JNIdemos_toDouble( JNIEnv*, jclass, jint in ) { 40 cout << "JNIdemos.cpp: in is " << in << ", out is " << in * 2 << endl; 41 return in * 2; 42 } 43 } 44 // C:> java JNIdemos 42 45 // JNIdemos.java: entry 46 // JNIdemos.cpp: in is 42, out is 84 47 // double is 84 48 // JNIdemos.java: exit