麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

JNI開發簡單入門篇

2019-11-18 14:06:52
字體:
來源:轉載
供稿:網友

 ?。ㄎ恼录偈鼓阋呀浻辛薉LL基本知識)
作者:桂靜秋

前言

在有的時候根據項目的需要不可以避免用到本地的東西,最常見的就是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 HelloWorld.class(注重,假如運行出錯就把classpath指向class)
成功運行后會出現HelloWorld.h

/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class HelloWorld */#ifndef _Included_HelloWorld#define _Included_HelloWorld#ifdef __cplusplusextern "C" {#endif/* * Class: HelloWorld * Method: displayHelloWorld * Signature: ()V */JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif


編寫C文件并編譯成DLL

#include <jni.h>#include "HelloWorld.h"#include <stdio.h>#include <windows.h>JNIEXPORT void JNICALLJava_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj){
文件名隨便取,主要擴展名.c就可以。相信有C基礎的人都可以明白以上的代碼。
然后利用你拿手的工具,不管是BCB或VC++或者用命令行編譯出DLL。
(java.sun.com里說Solaris用
cc -G -I/usr/local/java/include -I/usr/local/java/include/solaris
HelloWorldImp.c -o libhello.so
windows VC用
cl -Ic:javainclude -Ic:javaincludewin32
-LD HelloWorldImp.c -Fehello.dll)
最后,DLL的文件名當然要是hello.dll,因為前面的
System.loadLibrary("hello");//調入本地庫


運行
java HelloWorld
屏幕會打印Hello world!而且伴著Beep一聲。你成功了!
假如運行出現

Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1410) at java.lang.Runtime.loadLibrary0(Runtime.java:772) at java.lang.System.loadLibrary(System.java:832) at HelloWorld.<clinit>(HelloWorld.java:5)

那就考慮hello.dll的路徑,一般放在和class同個目錄就行了。

廢話
上面只是一道門,大家都知道C可以在windows上干什么?那這道門就可以干什么。
新年快樂,祝JR越來越多人!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 好吊色欧美一区二区三区四区 | 精国品产一区二区三区有限公司 | 久久免费视频一区二区三区 | 免费激情网址 | 视频一区二区三区中文字幕 | 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | 久色porn | 免费观看一区 | 亚洲骚综合 | 日韩黄站 | 一级电影在线观看 | 精品一区二区三区在线播放 | 精品久久久91 | 日本aaaa片毛片免费观蜜桃 | 精品久久中文网址 | 欧美日本色 | 久久成人精品视频 | 黄色一级片免费观看 | 色网站在线免费观看 | 免费在线性爱视频 | 粉嫩粉嫩一区二区三区在线播放 | 国产精品6区 | 毛片在线免费观看视频 | 毛片成人网 | 欧美不卡三区 | 亚洲人成网站在e线播放 | xnxx 美女19 | 国产精品视频一区二区三区四 | 综合网天天色 | 国产精品久久久久久一区二区三区 | chengrenzaixian| www久久久久久 | 新久草视频 | 欧美巨乳在线观看 | 一区二区三区视频在线 | 伊人午夜视频 | 中国女警察一级毛片视频 | 国产1区在线观看 | 一级毛片在线免费播放 | 未成年人在线观看 | 欧美黄 片免费观看 |