有了JAVA尺度平台的撑持,使JNI模式加倍易于实现和使用。在此总结了下面这个常识图: 实例:
% W$ H, v0 `2 q* U5 A) P- g 情形声名:ubuntu 10.4.2 LTS系统& d W" l, p+ I" e+ h* D
/**
$ x# P& W' X% a _% h: Z * @param args9 |" H/ y3 m( E' A
*( x# F, j7 j8 }1 X3 N. ?
*/
/ O. y* p- T6 j package com.magc.jni;9 O" Z+ h/ W/ a- I, v b
/**
2 z0 C$ ^* ^3 Y* ]8 r9 x! s * @author magc, ?7 r/ F' G6 E: _
*
D6 `% K' M1 f+ |* ~; ~ */ public class HelloWorld {: t4 F! E3 k3 q: M+ k
static {
3 P; e! z2 o9 I1 Z3 O. O System.loadLibrary("Hello");% [) V* b: ^5 m/ a: s- [1 Y) r
}
- ]* |1 T; f3 h' a9 A0 b native void DisplayHello();7 K9 l; _) [9 U) U
/**' q% L9 U& Z+ E) I5 x9 g/ h1 |% A+ }
public
3 X7 {1 q3 `4 ^; C# J7 k/ y 轨范清单1:src/com/magc/jni/HelloWorld.java; A7 C2 G% c6 _/ ~
*/) P0 A0 J" X( L+ ^ d
public static void main(String[] args) {0 P6 ^/ R& s# H; e$ H, X# X
new HelloWorld().DisplayHello();$ s8 a# s& B5 Z! N" d. B3 D
}! Z; Y( G1 m' b6 i7 h9 Z
}# O; z4 G& |. A9 S
进入src目录下,编译该JAVA类,. N2 q, @/ C2 A) _6 Z7 [2 S$ c
呼吁:javac ./com/magc/jni/HelloWorld.java2 W a6 }% l2 |" N! r7 K
在该HelloWorld.java地址目录下生成HelloWorld.class
0 l3 H2 ^7 q h8 R0 B# o/ f( [1 Y! W 然后使用javah生成头文件,( [4 y9 @, L* g1 i
呼吁:javah -jni com.magc.jni.HelloWorld
, Q+ W3 c6 q, W& I 在当前目录下生成com_magc_jni_HelloWorld.h头文件,此文件供C、C++轨范来引用并实现其中的函数- A: s0 z, i l0 k
轨范清单2:com_magc_jni_HelloWorld.h |