linux java 调用dll_windows和linux环境下java调用C++代码-JNI技术

本文介绍了如何在Windows(使用Visual Studio 2010和Eclipse)和Linux(CentOS)环境下,通过JNI技术实现Java调用C++代码。详细阐述了从创建Java工程、生成头文件、编写C++动态库到最终Java程序调用的全过程,包括在不同系统下处理头文件和生成动态库的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结下,希望看到的以后能少走弯路。

使用工具:

1.JAVA使用的IDE为eclipse

2.windows环境下C++使用的IDE为visual studio 2010

3.linux环境下C++使用的编译器为gcc/g++

一.windows环境下java调用C++代码

1.1新建java工程,生成相应头文件

eclipse新建工程名为"jniDemo"的java工程,在包名为com.woniu.Native下新建"NativeCpp.java"类,如下:

package com.woniu.Native;

public class NativeCpp {

public native void fun1();

public native int fun2(int a, int b);

public native void fun3(String url1, String url2);

}

3e89ec07f3f70556f5329f272d2d817b.png

编译生成.class文件

进入工程下的target\classes目录下,执行"javah -jni com.woniu.Native.NativeCpp",运行结果如下:

22226611253db6789b947fb59feb7968.png

此时,会在classes目录下生成"com_woniu_Native_NativeCpp.h"头文件,头文件内容如下:

/* DO NOT EDIT THIS FILE - it is machine generated */

#include

/* Header for class com_woniu_Native_NativeCpp */

#ifndef _Included_com_woniu_Native_NativeCpp

#define _Included_com_woniu_Native_NativeCpp

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class: com_woniu_Native_NativeCpp

* Method: fun1

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_com_woniu_Native_NativeCpp_fun1

(JNIEnv *, jobject);

/*

* Class: com_woniu_Native_NativeCpp

* Method: fun2

* Signature: (II)I

*/

JNIEXPORT jint JNICALL Java_com_woniu_Native_NativeCpp_fun2

(JNIEnv *, jobject, jint, j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值