Java 调用 C程序 之HelloWorld
来源:互联网 发布:isp 网络拓扑 编辑:程序博客网 时间:2024/05/22 15:17
在开始之前,请先下载一个C编译器(tcc)并将其添加到系统路径中。
下载地址: http://mirror.veriportal.com/savannah//tinycc/tcc-0.9.25-win32-bin.zip
1. 编写Java源程序并编译:
- public class JavaToC {
- public native void helloC();
- static {
- System.loadLibrary("HelloWorld");
- }
- public static void main(String[] args) {
- new JavaToC().helloC();
- }
- }
- javac JavaToC.java
2. 利用编译后的class文件生成头文件:
- javah JavaToC
头文件内容:
- /* DO NOT EDIT THIS FILE - it is machine generated */
- #include
- /* Header for class JavaToC */
- #ifndef _Included_JavaToC
- #define _Included_JavaToC
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Class: JavaToC
- * Method: helloC
- * Signature: ()V
- */
- JNIEXPORT void JNICALL Java_JavaToC_helloC
- (JNIEnv *, jobject);
- #ifdef __cplusplus
- }
- #endif
- #endif
3.编写C程序(HelloWorld.c):
- #include <stdio.h>
- #include <jni.h>
- #include "JavaToC.h"
- JNIEXPORT void JNICALL Java_JavaToC_helloC(JNIEnv *env, jobject javaobj)
- {
- printf("Hello World: From C");
- return;
- }
其中,头文件jni.h在JDK的include目录中.
4. 生成共享内库(HelloWorld.dll):
- tcc HelloWorld.c -I "C:\Program Files\Java\jdk1.7.0_07\incl
- ude" -I "C:\Program Files\Java\jdk1.7.0_07\include\win32" -shared -o HelloWorld.
- dll
5.运行Java程序:
- java JavaToC
输出结果:
- Hello World: From C
- Java 调用 C程序 之HelloWorld
- 在Java程序中调用C函数--打印"HelloWorld"
- 在Java程序中调用C函数--打印"HelloWorld"
- Java之helloworld程序
- Java之第一个Java程序HelloWorld
- Linux Java jni 调用之HelloWorld
- JNI进行java对c的调用之helloworld(linux下非eclipse版本)
- JNI技术之java程序调用C程序
- java调用c程序
- Java语言程序设计-Eclipse入门之HelloWorld程序
- Java语言程序设计-Eclipse入门之HelloWorld程序
- Day5之java入门小程序HelloWorld
- JNI简单实现Java调用C++/C的HelloWorld
- JNI简单实现Java调用C++/C的HelloWorld
- JNI简单实现Java调用C++/C的HelloWorld
- C程序HelloWorld
- 01-C#HelloWorld程序
- linux下java 调用 c jni 实现 HelloWorld
- go study second
- 启动Apache和MySQL服务器
- Yii-常用-url调用
- 3亿移动用户,是该好好投入android开发了
- android 数据库 SQLite
- Java 调用 C程序 之HelloWorld
- javascript中的apply和call
- 《大话数据结构》读书笔记(四)
- 2013、1、7待看
- 黑马程序员---关于访问控制符的问题:
- Android GestureDetector手势识别类
- 导出Excel--处理标题
- 一个简单的Android进程管理器(初稿)
- 黑马程序员--类的构造函数