目录

Java简单调用C语言函数

Java简单调用C语言函数

Java简单调用C语言函数

1.安装Dev-Cpp

https://i-blog.csdnimg.cn/blog_migrate/48b099c81f06f4baff571f925bc6d506.png

https://i-blog.csdnimg.cn/blog_migrate/7b5456f55a8b9beca884b467c4694959.png

https://i-blog.csdnimg.cn/blog_migrate/d662df6addd6fa1c0c9430a528b790c0.png

https://i-blog.csdnimg.cn/blog_migrate/85b36293acb9efbbc33d276a6369285e.png

https://i-blog.csdnimg.cn/blog_migrate/17dfffbba22c0c6bde8cdfd5e74efcda.png

https://i-blog.csdnimg.cn/blog_migrate/ff9469d7d8042589fbc13235caabfa40.png

https://i-blog.csdnimg.cn/blog_migrate/41797f308e5309ed232c5e8451f1ffa4.png

2.编写并编译Java代码

public class HelloCDemo {
	
	native void printHelloC();

	static{ System.loadLibrary("java2c"); }
	
	 public static void main(String args[])
	{
		HelloCDemo demo = new HelloCDemo();
		demo.printHelloC();
	}
}

javac编译java文件

javah生成.h文件

https://i-blog.csdnimg.cn/blog_migrate/da5258d244a78e4caf74c73d247acf29.png

打开.h文件

**/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloCDemo */

#ifndef _Included_HelloCDemo
#define _Included_HelloCDemo
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloCDemo
 * Method:    printHelloC
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloCDemo_printHelloC
  (JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
**

https://i-blog.csdnimg.cn/blog_migrate/faab3bd0b571ba9456e3d8f6d78c3970.png

3.新建工程

文件-》新建-》项目

https://i-blog.csdnimg.cn/blog_migrate/375c214a0746afbc7c09f47c355073ea.png

选择DLL,输入名称

https://i-blog.csdnimg.cn/blog_migrate/ce4c11019dd1aca19e848ecd6306a697.png

4.修改C代码

4.1将第2步生成的.h文件复制黏贴到dll.h里面

https://i-blog.csdnimg.cn/blog_migrate/8bb13e0faab905699d9c35116749e73e.png

4.2修改dllmain.cpp文件

https://i-blog.csdnimg.cn/blog_migrate/b23b55d31f607b162fee9e951dbe5b60.png

4.3 保存并编译

会报下面错误

https://i-blog.csdnimg.cn/blog_migrate/63e83f10402e35857ad80462e870f6d7.png

4.4编译错误解决

去java安装目录下找include文件夹,

里面有jni.h 和jni_md.h文件,复制到

https://i-blog.csdnimg.cn/blog_migrate/402831898a2069577e1f9f19351d7340.png

https://i-blog.csdnimg.cn/blog_migrate/3649dad1d152f3997c28014c0772708c.png

https://i-blog.csdnimg.cn/blog_migrate/bc5783793f38a9c27fce567f49853168.png

https://i-blog.csdnimg.cn/blog_migrate/2572aec4550497ce380ef138b897ae41.png

https://i-blog.csdnimg.cn/blog_migrate/b8134ff4c2e29293801ce9621a3b9682.png

https://i-blog.csdnimg.cn/blog_migrate/9fca87a1f464bc34ab56877ace9e8f5b.png

5.将编译好的dll文件放到java安装目录下的bin目录下

https://i-blog.csdnimg.cn/blog_migrate/32d70ffb57be93729f85ba78f32c56bf.png

https://i-blog.csdnimg.cn/blog_migrate/5cc3d4409a260369d0214e9693f153fa.png

6.运行

https://i-blog.csdnimg.cn/blog_migrate/14655cdbe5699a8dc2edde3ffcd7028f.png