Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1528421
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:09:06

一起学习
前言 在有的时候根据项目的需要不可以避免用到本地的东西,最常见的就是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; } 下载本文示例代码


JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇JNI开发简单入门篇
阅读(136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~