jni开发中需要编译c文件,当c文件比较少时,另外建立工程比较麻烦,使用eclipse环境可以使用外部工具功能快速编译c文件,下面介绍外部工具的配置方法。
- 首先第一步需要使用java类生产h文件,配置如图:
位置是你jdk安装位置下的javah.exe,我的是
C:\Program Files (x86)\Java\jdk1.7.0_67\bin\javah.exe
工作目录
${project_loc}\src
${project_loc}是eclipse的内部变量,是当前工程的目录
自变量,就是javah运行时传入的参数,即在命令行下调用时后面输入的
-classpath ${project_loc}\bin\ -d ${project_loc}\jni -jni ${java_type_name}
${}标记的都是eclipse的变量,${java_type_name}是你当前选中的java类名,不是文件名
然后刷新标签如下配置,当完成时刷新就能看到生成的h文件了
最后公共还需要设置在菜单上显示,如下配置
最后点应用保存。
下面还有几个,刷新和公共标签都如上配置即可。
2. 有了h文件,就开始编写cpp文件,大家都知道c需要先编译为obj文件,才可以再编译成可执行文件,或者动态库的,下面开始编译o文件
配置如图:
我是使用minGW编译,位置就是我安装位置的g++.exe
C:\MinGW\bin\g++.exe
工作目录,工程中的jni文件夹,你需要新建该文件夹,在此文件夹里编写cpp文件。
${project_loc}\jni
自变量比较长,前两个路径是你jdk中的,针对你系统环境引用,我是windows平台,引用win32目录下的,后面复制即可。
-I "C:\Program Files (x86)\Java\jdk1.7.0_67\include\win32" -I "C:\Program Files (x86)\Java\jdk1.7.0_67\include" -O0 -g3 -Wall -c -fmessage-length=0 -o ${project_loc}\jni\${project_name}.o ${project_loc}\jni\${selected_resource_name}
3.最后编译o文件为dll,就可以在java中调用了
位置和工作目录同上。
自变量
-I "C:\Program Files (x86)\Java\jdk1.7.0_67\include\win32" -I "C:\Program Files (x86)\Java\jdk1.7.0_67\include" -Wl,--add-stdcall-alias -shared -o ${project_name}.dll ${selected_resource_name}
最后别忘了配置刷新和公共标签,最后点应用保存。
使用时选中需要操作的文件,然后到菜单上外部工具,旁边小箭头下拉选不同工具,稍等就可以生成需要的文件了。