我是在32位Ubuntu12.04下做这个测试的, 以下假定已经配置好了JAVA_HOME,CLASSPATH这两个环境变量(绿色的“注”可以不看)
1. 编写NativeTest.java, 代码如下:
public class NativeTest {
/* 声明一个本地(native)函数 */
public native static double max(double a, double b);
static {
/*
* 关于loadLibrary的信息, 摘自 Java2 Platform SE 5 API:
* public static void loadLibrary(String libname), 加载由libname参数指定的系统库。
* 将库名映射到实际系统库的方法取决于系统。
*/
System.loadLibrary("max");
}
public static void main(String[] args) {
System.out.println(max(1.0, 2));
}
}
2. 编译NativeTest.java, 并用javah生成该类对应的C/C++头文件:
javac NativeTest.java
执行上述命令后, 会在当前目录中生成一个名为 NativeTest.h