内容发布更新时间 : 2025/1/3 16:30:32星期一 下面是文章的全部内容请认真阅读。
前期准备
首先,在eclipse中安装CDT插件,C/C++环境MinGW(配置好环境变量)。
Java端编写类文件,以及C++头文件的生成 1、建立Java项目MyTest,编写Helloworld类 package com.mytest;
public class HelloWorld { //加载C++动态连接库 static {
System.loadLibrary(\);
}
//定义native修饰的方法,具体用C++实现 public native static void sayHello(); public static void main(String[] args) { sayHello(); } }
2、在dos下生成C++头文件
进入到Java项目MyTest HelloWorld类所在的bin目录,我的目录在: D:\\Program Files\\eclipse-workspace\\MyTest\\bin 用javah命令生成C++头文件(定位到HelloWorld的class文件,使用完全限定名:包名.类名):
javah -jni com.mytest.HelloWorld
在bin目录下生成com_mytest_HelloWorld.h头文件
下面就是在eclipse中编写C++,以及dll文件的生成
3、建立C++项目MyCppTest,编写C++文件HelloWorld.cpp
//导入头文件
#include \
//#include \ #include
#include \ using namespace std; //具体实现sayHello()方法 JNIEXPORT void JNICALL
Java_com_mytest_HelloWorld_sayHello(JNIEnv *env, jclass cla){ cout<<\< \和\这两个文件,分别在jdk安装目录下的include和include/win32下,需要将它们拷贝到mingw安装目录下的include目录里面 4、将上面生成的头文件拷贝到HelloWorld.cpp同一目录下 5、编译配置 选中C++项目MyCppTest,右击,选择properties。第一步配置你的编译器连接,配置如下 然后就是,你生成的dll属性配置 Command中填写g++ 接着在MinGW C++ Linker下的Miscellaneous中,Linker flags中填写: -Wl,--add-stdcall-alias -static-libgcc -static-libstdc++ -shared 在MinGW C++ Linker下的Shared Library Settings中,勾选右侧的Shared选项