在java中调用自己的c++代码是一件简单的事情,以下类为例:
class Prompt {
private native String getLine(String prompt);
public static void main(String args[]) {
Prompt p = new Prompt();
String input = p.getLine("Type a line: ");
System.out.println("User typed: " + input);
}
static {
System.loadLibrary("MyImpOfPrompt");
}
}
我们希望在Prompt类中可以调用c++下的getLine函数,第一步就是先编译该java文件:
javac Prompt.java
此时应该已经生成了Prompt.class文件,然后使用命令:
javah -jni Prompt
即可生成相应的.h文件,其内容为:
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring);事实上Java调用c++只需要满足一个接口命名规范即可,而javah -jni命令则为快速生成接口提供了方便。最后,记得将你的c++代码编译为libMyImpOfPrompt.so更详细的规范及操作可以参见http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/index.html
Java调用C++示例

被折叠的 条评论
为什么被折叠?



