JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
JNI开发简单入门篇
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]
前言

在有的时候根据项目的需要不可以避免用到本地的东西,最常见的就是java想访问Window本地的东东,比如想调节鼠标移动速度、改变窗体底色、甚至用javaApplet做个基于windows的远程控制象pcanywhere那样,怎么办?下面就用个最简单的例子来入门。

步骤
写一个HelloWorld.java
class HelloWorld {
public native void displayHelloWorld();//定义本地方法


static {
System.loadLibrary("hello");//调入本地库
}

public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}

}
以上代码看起来好象和以前写的有点区别,出现了native关键字,但是不用太深究,你可以把这段代码看成是调用本地库的桥。
然后java HelloWorld.java生成HelloWorld.class

生成C的头文件
很简单,就用jdk提供的javah命令javah HelloWorldclass(注意,如果运行出错就把classpath指向class),成功运行后会出现HelloWorld.h
/* DO NOT EDIT THIS FILE - it is machine generated */

#include
/* Header for class HelloWorld */



#ifndef _Included_HelloWorld

#define _Included_HelloWorld

#ifdef __cplusplus

extern "C" {

#endif
/*
* Class: HelloWorld
* Method: displayHelloWorld
* Signature: ()V
*/

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);


#ifdef __cplusplus

}

#endif

#endif


编写C文件并编译成DLL
#include

#include "HelloWorld.h"

#include

#include



JNIEXPORT void JNICALL

Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)

{
printf("Hello world!\n");//在这里实现java类中定义的方法
MessageBeep(0);//调用到win本地,会发一声响
return;

}
上一篇:领略java.util.Canlendar的优点

下一篇:谨慎使用Date和Time类

  • 学习使用DispatchAction
  • 三步实现Cool Button
  • EnterpriseJavaBeansDistilled(3)
  • 一个表达式计算案例的设计和实现
  • JAVA:配置文件读取器
  • JSP实现树型组织架构(6)--包含文件connectinDB.jsp & orgConnInclude.jsp
  • hibernate基础_7
  • eclipse下tanghan plugin连mssql实战
  • J2EE到底是什么?
  • 小软件项目开发的管理
  • Effective Java读书笔记
  • Java常见问题集锦25问
  • [Creational Patterns] The Singleton
  • 在eclipse 3 上配置jsp开发环境
  • J2EE模式一瞥(5)
  • java中关于星期时间的操作
  • 根据petclinic项目手把手教你剖析SpringFramework源代码---日志篇
  • jetspeed开发实战
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号