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

  1. 首先有gcc来编译C++,有jdk来编译java。
  2. 编写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.
  3. 编译java代码
    javac HelloWorld.java 生成HelloWorld.class文件,然后使用javah HelloWorld 来生成HelloWorld.h
  4. 编写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;
    }
    
  5. 编译c的动态库
    gcc -shared -o $HOME/lib/libhello.so HelloWorld.c
  6. 注意$HOME/lib目录要加入到环境变量LD_LIBRARY_PATH中去:
    #export LD_LIBRARY_PATH=~/hello将.so目录设置成hello目录中
    #echo $LD_LIBRARY_PATH //显示是否设置成功
    
  7. 以上设置好后,可以像正常的java程序那样实现C++程序的功能。java HelloWorld运行程序

 

 

 

 

 

 

 

posted on 2013-08-12 20:08  lyeoswu  阅读(1054)  评论(0编辑  收藏  举报

导航