`
zengxx1989
  • 浏览: 295518 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

设计Java程序与C语言的接口

    博客分类:
  • jni
阅读更多
第一步:声明本地变量

  例如:

class NativeHello{
 public native void nativeHelloWorld();
 static{
  System.loodlibrary("nativeTest");//调用nativeTest.dll库文件
 }


  第二步:生成头文件

  先用javac编译NativeHello.java,再用javah生成c的头文件.h文件

  第三步:生成根文件

  命令如下:javah -stubs NativeHello (生成NativeHello.c文件)

  第四步:编写C程序(此处假定文件名为NativeTest.c)

#include <stdio.h>
#include <NativeHello.h>//指第二步生成的.h文件
#include <stubpreamble.h>//指JDK的include下的文件
void Nativehello_nativeHelloWorld(struct HNativeHello *this){
.........
}
/*函数名Nativehello_nativeHelloWorld不能任意指定,可以从javah生成的头文件中查到,也可用 

  如下方法命名:类名_本地方法名(struct H类名 *this)*/

  第五步:编译DLL文件

  将nativeTest.c和NativeHello.c编译成DLL库文件,文件名与System.loodlibrary("nativeTest")中的文件同名。

  最后讲一下测试的方法,源文件如下:

class UseNative{
 public static void main(String []args){
  NativeHello nh=new NativeHello();
  nh.nativeHelloWorld();
 }

分享到:
评论

相关推荐

    设计java程序与c语言接口

    设计Java程序与C语言的接口  第一步:声明本地变量  例如: class NativeHello{  public native void nativeHelloWorld();  static{  System.loodlibrary("nativeTest");//调用nativeTest.dll库文件  ...

    Java与C语言混合开发技术

    通过JNI(Java Native Interface)技术,可以在Java代码中调用本地方法(Native Method),实现更高效、更灵活的程序设计。本文从原理、方法和实例三个方面介绍了Java与C语言混合开发的相关内容。 在原理方面,首先...

    java和c语言tcp通信和文件传送

    一个java语言写的客户端连接C语言写的socket服务器根据tcp进行通信和文件发送

    程序设计抽象思想:C语言描述-

     1.2 C程序的结构  1.3 变量、值和类型  1.4 表达式  1.5 语句  1.6 函数  1.7 小结  1.8 复习题  1.9 编程练习  第2章 C的数据类型  2.1 枚举类型  2.2 数据和内存  2.3 指针  2.4 数组  2.5 指针...

    JNA-Linux下java程序调用so库接口函数

    在Linux系统下,JAVA程序通过JNA技术实现调用C语言编程输出的so库接口函数,从而实现java程序与c程序之间的交互。

    基于Java实现的C语言编译器解释器(实现词法分析、语义分析、绘制图像与窗口建立等).zip

    经过自己的分析,我在实现解释器的程序中,将总体过程分为4个阶段,分别为Scanner(词法分析)、Paerser(语法分析)、Semantic(语义分析)、Main(绘制图形与窗口建立),全过程采用JAVA语言、递归下降子程序方法以及增量...

    基于Java的坦克大战游戏的设计与实现设计软件程序源码+word毕业论文文档.zip

    基于Java的坦克大战设计与实现设计软件程序源码+word毕业论文文档. 此系统是使用Java语言实现坦克大战游戏程序,玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁...

    计算机毕业设计 - JAVA002打飞机游戏设计(程序+说明+论文),保证可靠运行

    Java致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。Java取消了C语言的结构、指针、#define语句、多重继承、goto语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用...

    Axiomatic推出可生成Java Bytecode的C语言编译器

    Axiomatic Solutions推出1.3.8版Axiomatic多平台C(AMPC)。AMPC是一种可产生Java Bytecode的... 目前市场上大多数程序均是用C编写的,因此将JVM与C语言结合起来将会迅速获得业界支持,既可用于台式机,也可用于嵌入

    c/c++ 与java互通 AES加密解密,算法ECB

    压缩包里有两个工程,一个vc6.0一个myeclipse,本帖是修复贴,原帖地址c/c++ 与java互通 AES加密解密,算法ECB/PKCS5PADDING http://download.csdn.net/download/wangsonghiweed/4328267 -来自CSDN,有童鞋反映有...

    Java语言程序设计ppt第十四章(抽象类和接口)

    Java语言程序设计ppt第十四章(抽象类和接口)

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    基于JAVA的学生通讯录管理系统设计和实现[文献综述].doc

    毕业论文文献综述 信息与计算科学 基于JAVA的学生通讯录管理系统设计和实现 一、前言部分 Java是由Sun公司于1995年5月推出的Java程序设计语言和Java平台的总称。它具有 简洁、安全、面向对象、动态、体系结构中立、...

    基于JAVA的推箱子游戏设计软件程序源码+word毕业论文文档.zip

    基于JAVA的推箱子游戏设计软件程序源码+word毕业论文文档. 基于JAVA的推箱子游戏系统主要用于实现游戏推箱子功能,提供多种不同难度的关卡。本系统结构如下: (1)初始化模块: 该模块包括屏幕初始化和游戏第一关的...

    开题报告-基于JAVA的俄罗斯方块游戏设计与实现.doc

    面向对象技术的核心是以更接近人类思维的方式建立计算机逻辑模型,它利用 类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,使反 映现实世界实体的各个类在程序中能够独立、自治、继承;...

    JAVA语言学习方法

    C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),君不见Windows API都是C语言函数的接口?Unix/Linux绝大多数应用都是C语言开发的;Windows应用...

    基于JAVA超级玛丽游戏GUL 设计软件源码+WORD毕业论文文档.zip

    超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值。当马里奥通过最后一个场景后...

    C程序设计语言(第2版·新版中文)

    全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念,类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。 目录   出版者的话 专家指导委员...

    俄罗斯方块毕业设计源程序+内附毕设说明书

    用JAVA编写的程序代码,内附设计说明书,目录如下 目 录 1引言 1 2游戏简介 2 2.1游戏的意义与内涵 2 2.2游戏的组成要素 2 2.3俄罗斯方块游戏的背景 3 3 俄罗斯方块游戏软件开发的理论基础 4 3.1 Java 简介 4 3.1.1 ...

Global site tag (gtag.js) - Google Analytics