Java使用Eclipse_cdt和MinGw编写C++/java,jni的小例子

来源:互联网 发布:剪辑音乐软件手机软件 编辑:程序博客网 时间:2024/06/05 16:38

Java使用Eclipse_cdt和MinGw编写C++/java,jni的小例子

1.建立java工程。工程名为JniJava2.在工程里面建立包:com.cdc.jni,和文件夹jni.2.在com.cdc.jni里面建立类Main.java.文件内容如下:package com.cdc.jni;public class Main {public static void main(String[] args) {Main main=new Main();int i=main.getInt();System.out.println("java打印:来自C++的数据="+i);}static{System.loadLibrary("libDll");}native int getInt();}3.在cmd里面进入到上述工程JniJava2里面的src目录下,执行命令:javah com.cdc.jni.Main,刷新JniJava2工程,可以看到这个工程下出现了com_cdc_jni_Main.h文件。文件内容如下:/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_cdc_jni_Main */#ifndef _Included_com_cdc_jni_Main#define _Included_com_cdc_jni_Main#ifdef __cplusplusextern "C" {#endif/* * Class:     com_cdc_jni_Main * Method:    getInt * Signature: ()I */JNIEXPORT jint JNICALL Java_com_cdc_jni_Main_getInt  (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif将此文件复制到jni文件夹中(这一步可以不做)。4.建立c++工程,工程名为Dll.建立一个文件夹为src,将上一步生成的com_cdc_jni_Main.h文件复制到src文件夹中,同时在src下面建立文件com_cdc_jni_Main.cpp文件,文件内容如下:#include"com_cdc_jni_Main.h"JNIEXPORT jint JNICALL Java_com_cdc_jni_Main_getInt  (JNIEnv *env, jobject obj){jint ret=5;return ret;};5.选中c++工程,按alt+enter,在Build----Settings----Tool Settings-----MinGW C++ Linker目录栏下的Miscellaneous选项下,在linker flags处填入:-Wl,--add-stdcall-alias。或者选中工程,右键properties,C/C++ Build/Settings/Tool Settings/MinGW C++ Linker/Miscellaneous,在右侧的Linker flags里面输入-Wl,--add-stdcall-alias,确定。选中C++工程,点击工具栏上的Build 'Debug' for project 'Dll',点击后会在Dll工程下面生成Binaries和Debug文件夹,在Debug文件夹下有libDll.dll文件。6.将上一步中生成的libDll.dll文件复制到java工程JniJava2中的jni文件夹下。7.选中java工程,右键依次点击run---run configurations---Main,在点击Arguments,在Vm arguments处填入如下:-Djava.library.path="D:\android\JNI\JniJava2\jni;${env_var:PATH}"其中,D:\android\JNI\JniJava2\jni表示放置libDll.dll文件的位置,其它是固定的,包括引号。8.运行java程序。前提:安装了相关环境,并将jdk里面的jni.h和jni_md.h拷贝到MinGW下的include路径下。


0 0
原创粉丝点击