在java中嵌入c++程序入门步骤
2013-08-12 20:08
232 查看
首先有gcc来编译C++,有jdk来编译java。
编写HelloWorld程序,由于涉及到要编写c/c++代码因此我们会在开发中使用Microsoft VC++工具。编写java代码,我们在硬盘上建立一个hello目录作为我们的工作目录,首先我们需要编写自己的java代码,在java代码中我们会 声明native方法,代码非常简单。如下所示
注 意我们的displayHelloWorld()方法的声明,它有一个关键字native,表明这个方法使用java以外的语言实现。方法不包括实现,因 为我们要用c/c++语言实现它。注意System.loadLibrary("hello")这句代码,它是在静态初始化块中定义的,系统用来装载 hello共享库,这就是我们在后面生成的libHello.so.
编译java代码
javac HelloWorld.java 生成HelloWorld.class文件,然后使用javah HelloWorld 来生成HelloWorld.h
编写HelloWorld.c
编译c的动态库
gcc -shared -o $HOME/lib/libhello.so HelloWorld.c
注意$HOME/lib目录要加入到环境变量LD_LIBRARY_PATH中去:
以上设置好后,可以像正常的java程序那样实现C++程序的功能。java HelloWorld运行程序
编写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运行程序
相关文章推荐
- 如何在C++中嵌入JAVA程序
- [java入门]--java第一个程序Hello World(超详细步骤)
- 2Java程序JNI调用C++之四步骤
- 使用Java中的JNI技术将C/C++程序嵌入到Java代码中实现Hello World
- hadoop上运行c++程序步骤
- 用C++写Java Style程序
- Java入门小程序(2017.3.6)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<反射>(二十九)
- C++嵌入Python语言(一):环境搭建及HelloWord程序测试
- Java程序使用HASP加密狗加密保护的操作步骤--手把手包你学会
- Android JNI 使用的数据结构JNINativeMethod详解 ||建立Android SDK下的JNI、JAVA应用完整步骤---Android JAVA调用C++代码
- 你的java/c/c++程序崩溃了?揭秘段错误(Segmentation fault)(3)
- Java入门--漫谈Java程序的性能优化
- JNI基础(一):Java程序调用C/C++
- C/C++程序编译步骤详解
- C++ STL入门教程(3)——deque(双向队列)的使用(附完整程序代码)
- 清华大学计算中心培训部-技术分享:java入门教程:怎么向程序输入信息
- 我使用过的Linux命令之swig - 把C/C++的代码嵌入Java等语言的开发工具
- java入门程序100例学习笔记(006输出测试)
- Java程序性能调优步骤