编写JNI程序有时不想安装VC之类的IDE,安装GCC还不错,所以使用MinGW是个不错的选择。
安装MinGW之后在命令窗口下切换到MinGW安装目录的bin目录下,需要java安装目录下的include下面的jni.h,jawt_md.h,jni_md.h拷贝到MInGW安装目录的include目录下,这样编译时就不用指定这些文件的目录。
具体步骤如下:
一:编写java文件
public class HelloJNI {
static {
System.loadLibrary("Hello");
}
public static native void hello(String msg);
public static void main(String[] args) {
HelloJNI hh=new HelloJNI();
hh.hello("Hello,Kimm!");
}
}
二:编译java文件 javac HelloJNI.java
三:生成HelloJNI.h文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloJNI */
#ifndef _Included_HelloJNI
#define _Included_HelloJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloJNI
* Method: hello
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_HelloJNI_hello
(JNIEnv *, jclass, jstring);
#ifdef __cplusplus
}
#endif
#endif
方法生命中需注意:jclass表示HelloJNI那个类,jstring表示hello方法参数类型
四:编写C文件
#include "jni.h"
#include <stdio.h>
#include "HelloJNI.h"
JNIEXPORT void JNICALL
Java_HelloJNI_hello(JNIEnv *env, jclass aa, jstring bb)
{
printf("hello,world\n");
return;
}
五:生成dll:gcc -shared -Wl,--kill-at -o hello.dll HelloJNI.c
System.loadLibrary("Hello");就是加载生成的dll文件,注意名字一样
六:运行 java HelloJNI,调用c文件中的Java_HelloJNI_hello方法
参考
http://blogger.org.cn/blog/more.asp?name=jkit&id=12794
分享到:
相关推荐
简洁使用 eclipse+mingw 环境编译 java jni:安装mingw,eclipse,无需javah等等操作。工程中的文件路径可能要根据具体环境修改,详见编译提示(如果有的话)
mingw Windows安装程序含有mingw的Windows安装程序,mingw可以编写c++和c语言的程序。
MinGW使用MinGW使用
NULL 博文链接:https://yuanzhifei89.iteye.com/blog/1955433
MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU ( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是完全免费的自由软件,它在Windows平台上模拟了...
使用VSCode结合MinGW开发C语言程序.zip
Java通过JNI调用Eclipse、MinGW编译C++出来的dll,仅仅是一个简单的示例,关键是整个流程要走通,详细参见:http://blog.csdn.net/yanzi1225627/article/details/18891613
该文档按照人的思维习惯和模块化程序设计的思路,对C语言如何编写WINDOW服务程序做了深入探讨,并且贴出全部源代码。
mingw5.1.4 安装程序,直接本地安装。不须用从网上下载安装文件。安装是不须用网络连接
程序发布后在客户手中出现异常崩溃,但自己测试又不能复现问题,要是能捕获到异常时相关信息就很好定位问题了。 资源中包含Qt mingw编译程序crash信息捕捉和跟踪方法说明,以及测试程序代码。
VSCode所需编译器MinGW的mingw64压缩包 MinGW 的全称是:...MinGW-w64 是稳定可靠的、持续更新的 C/C++ 编译器,使用它可以免去很多麻烦,不用担心跟不上时代,也不用担心编译器本身有bug,可以放心的去编写程序。
用一堆的图展示如何用MinGW(gcc)开发程序.
windows下使用mingw的gcc编译工具,使用测试代码实现使用c调用lua脚本,包括传入参数和返回值的模式和无参数传递的模式的具体实现。
配置Eclipse+MinGW开发C++程序
使用 mingw 编译出 sqlite3.dll 和 sqlite3.exe 2. lsqlite3 (也是本压缩包的原型) http://lua.sqlite.org 从下面网址下载 Version 0.8 http://lua.sqlite.org/index.cgi/zip/lsqlite3_svn08.zip?uuid=svn_8 ...
libevent-2.0.22-stable在windows环境下使用mingw编译
MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和...这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库,而缺少POSIX支持[3],大多数GNU软件无法在不修改源代码的情况下用MinGW编译。
使用mingw4.9.2编译后的zlib-1.2.5,包含头文件和.a文件
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环 境,它是Minimalist GNU on Windows的...这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes微软基础类库)。
minGW使用指南minGW使用指南minGW使用指南minGW使用指南minGW使用指南