linux下使用jni实现c++调用java程序(1)准备工作
2013-03-04 23:23
771 查看
c++调用java程序一般使用两种方法:
(1)JNI(java native interface)
(2)用socket通信,建立c++客户端和java服务端
准备工作:
安装java,并配置环境变量
#echo $J***A_HOME
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
#echo $JRE_HOME
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
注意:一定还要配置LD_LIBRARY_PATH环境变量
如果java环境变量已经设置好J***A_HOME和JRE_HOME,并且在编译时添加了这些库文件,编译应该会通过。
但执行时出现以下错误:
#./main
./main: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
这是由于没有设置好LD_LIBRARY_PATH的缘故。
可以在/etc/profile文件环境变量中加入一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JRE_HOME/lib/i386:$JRE_HOME/lib/i386/client
#source /etc/profile
之后error while loading shared libraries: libjvm.so的错误就会解决。
使用第一种方法,要用的编译命令:
g++ -o main main.cpp test_jni.cpp -I${J***A_HOME}/include -I${J***A_HOME}/include/linux -L${JRE_HOME}/lib/i386/client -ljvm
要用到的文件和库有:
jni.h
所在目录:${J***A_HOME}/include
jni_md.h
所在目录:${J***A_HOME}/include/linux
libjvm.so
所在目录:${JRE_HOME}/lib/i386/client
<准备工作结束!>
(1)JNI(java native interface)
(2)用socket通信,建立c++客户端和java服务端
准备工作:
安装java,并配置环境变量
#echo $J***A_HOME
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
#echo $JRE_HOME
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
注意:一定还要配置LD_LIBRARY_PATH环境变量
如果java环境变量已经设置好J***A_HOME和JRE_HOME,并且在编译时添加了这些库文件,编译应该会通过。
但执行时出现以下错误:
#./main
./main: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
这是由于没有设置好LD_LIBRARY_PATH的缘故。
可以在/etc/profile文件环境变量中加入一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JRE_HOME/lib/i386:$JRE_HOME/lib/i386/client
#source /etc/profile
之后error while loading shared libraries: libjvm.so的错误就会解决。
使用第一种方法,要用的编译命令:
g++ -o main main.cpp test_jni.cpp -I${J***A_HOME}/include -I${J***A_HOME}/include/linux -L${JRE_HOME}/lib/i386/client -ljvm
要用到的文件和库有:
jni.h
所在目录:${J***A_HOME}/include
jni_md.h
所在目录:${J***A_HOME}/include/linux
libjvm.so
所在目录:${JRE_HOME}/lib/i386/client
<准备工作结束!>
相关文章推荐
- linux下使用jni实现c++调用java程序(3)多线程jni使用
- linux下使用jni实现c++调用java程序(4)DestroyJavaVM出现错误
- linux下使用jni实现c++调用java程序(5)参考资料总结
- linux下使用jni实现c++调用java程序(2)找不到java类的问题
- JNI实现Java调用C++程序(Linux 64位)
- Android开发 通过JNI实现JAVA与C/C++程序间的调用和回调
- 【Java】Java调用C/C++程序的实现(jni)
- 用Swig将c/c++程序转为java代码(使用swig实现java调用c、c++的方法)
- 使用JNI技术实现JAVA程序调用dll
- linux下 使用JNI 来以C++调用JAVA的类!(一)
- 使用JNI技术实现JAVA程序调用dll
- linux下 使用JNI 来以C++调用JAVA的类!(一)
- init.rc文件里面启动c++程序,通过jni调用java实现
- cocos2dx 使用jni实现java调用c++
- JNI实现Java调用C++程序(Win10 64位)
- Chap5:使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能
- 使用JNI技术实现JAVA程序调用dll
- 使用JNI技术实现JAVA程序调用dll
- 使用Java中的JNI技术将C/C++程序嵌入到Java代码中实现Hello World
- 使用JNI技术实现JAVA程序调用dll