您的位置:首页 > 编程语言 > C语言/C++

在java中嵌入c++程序入门步骤

2013-08-12 20:08 232 查看
首先有gcc来编译C++,有jdk来编译java。

编写HelloWorld程序,由于涉及到要编写c/c++代码因此我们会在开发中使用Microsoft VC++工具。编写java代码,我们在硬盘上建立一个hello目录作为我们的工作目录,首先我们需要编写自己的java代码,在java代码中我们会 声明native方法,代码非常简单。如下所示

class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}

public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}


注 意我们的displayHelloWorld()方法的声明,它有一个关键字native,表明这个方法使用java以外的语言实现。方法不包括实现,因 为我们要用c/c++语言实现它。注意System.loadLibrary("hello")这句代码,它是在静态初始化块中定义的,系统用来装载 hello共享库,这就是我们在后面生成的libHello.so.

编译java代码
javac HelloWorld.java 生成HelloWorld.class文件,然后使用javah HelloWorld 来生成HelloWorld.h

编写HelloWorld.c

#include <jni.h>;
#include "HelloWorld.h"
#include <stdio.h>;

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}


编译c的动态库
gcc -shared -o $HOME/lib/libhello.so HelloWorld.c

注意$HOME/lib目录要加入到环境变量LD_LIBRARY_PATH中去:

#export LD_LIBRARY_PATH=~/hello将.so目录设置成hello目录中
#echo $LD_LIBRARY_PATH //显示是否设置成功


以上设置好后,可以像正常的java程序那样实现C++程序的功能。java HelloWorld运行程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: