Linux平台下的JNI开发[88250原创]
由于项目需要用Java调用C++写的功能,所以要学习JNI技术的使用。下面是一个简单的实例:
1. 编写Java类
package hellojni;
/*
* @(#)HelloWorld.java
*
* Copyright 2007 School of Software, Yunnan University.
* All rights reserved
*/
/**
* 载入C++写的业务实现库,Java端的调用接口
* @author 88250
* @version 1.0.0.0, Jan 31, 2008
*/
public class HelloWorld {
static {
try {
// 此处即为本地方法所在链接库名
System.load("/home/daniel/Work/Sources/Java/HelloJNI/build/classes/libHelloWorld.so");
} catch (UnsatisfiedLinkError e) {
e.printStackTrace();
}
}
/**
* 业务逻辑方法
* @param strName
*/
public native void SayHello(String strName);
}
2. 编译java文件生成HelloWorld.class文件
3. 在命令行下,javah -jni hellojni.HelloWorld 生成 HelloWorld.h 文件。(注意:运行javah命令的路径为hellojni包的上层)
生成hellojni_HelloWorld.h文件,如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class hellojni_HelloWorld */
#ifndef _Included_hellojni_HelloWorld
#define _Included_hellojni_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: hellojni_HelloWorld
* Method: SayHello
* Signature: (Ljava/lang/String;)V
*/
推荐文章 |
