java native interface(JNI)¼¼Êõ¼òµ¥Ó¦ÓÃ
ÊÖÉÏÒ»¸öÏîÄ¿ÐèҪͨ¹ýusb¿ÚÈ¥¶ÁÈ¡usbkeyµÄÐÅÏ¢£¬³§¼ÒÌṩµÄÖ»ÓÐC/C++µÄ½Ó¿Ú£¬¶øÖ÷Ó¦ÓÃÊÇjavaµÄ£¬ËùÒÔÐèҪʹÓÃjavaÈ¥µ÷Óö¯Ì¬Á´½Ó¿â£¬ËùÒÔ»¨Á˵ãʱ¼äÑо¿ÁËÏÂJNI¼¼Êõ£¬jdk¶ÔJNI¼¼Êõ·â×°µÃºÜµ½Î»£¬Ê¹ÓÃÆðÀ´·Ç³£¼òµ¥£¬JNI¼¼Êõ×î¹Ø¼ü»¹ÊÇÔÚÓÚjniÊý¾ÝÀàÐͺͱ¾µØÊý¾ÝÀàÐ͵Äת»»¡£Ïȼòµ¥ÂÞÁÐÏÂJNIµÄ´´½¨¹ý³Ì£º
Ê×ÏÈÐèҪдһ¸öjavaÀ࣬Ȼºó¶¨ÒåÐèҪʹÓÃC/C++ȥʵÏֵķ½·¨£¨ËäȻ˵jniÊÇjava native interface£¬µ«ÊÇĿǰֻ֧³Öc/c++ʵÏÖ£©£¬Ê¹ÓÃnative¹Ø¼ü×ÖÉùÃ÷¡£ÕâÀïдһ¸ö¼òµ¥µÄÀý×Ó£º
TestJNI.java
package test.jni;
public class TestJNI
{
static
{
System.loadLibrary("TestJNI");
//Õâ¸öÊÇÖ®ºó²úÉúµÄ¿âµÄÃû×Ö£¬²»ÐèÒª¼Óºó׺£¬
//×Ô¶¯¸ù¾ÝϵͳÕÒ.dll»òÕß.so;
}
public native String helloWorld();
public static void main(String[] args)
{
TestJNI t = new TestJNI();
System.out.println(t.helloWorld());
}
}
È»ºó½«ÒÔÉÏÎļþʹÓÃjavac±àÒ룬ȻºóʹÓÃjavahÃüÁÈçÏ£º
javac test\jni\TestJNI.java
javah test.jni.TestJNI
Ö®ºó»áµÃµ½Ò»¸ötest_jni_TestJNI.hµÄÍ·Îļþ£¬ÄÚÈÝÈçÏ£º
test_jni_TestJNI.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class test_jni_TestJNI */
#ifndef _Included_test_jni_TestJNI
#define _Included_test_jni_TestJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: test_jni_TestJNI
* Method: helloWorld
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_test_jni_TestJNI_helloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
È»ºó±àдc/c++ʵÏÖ£¬ÈçÏ£º
TestJNI.c
#include <stdio.h>
#include <jni.h>
#include <windows.h>
#include "test_jni_TestJNI.h"
JNIEXPORT jstring JNICALL Java_test_jni_TestJNI_helloWorld
(JNIEnv * env, jobject object){
//ÔÚcÖбØÐë¸øÐÎʽ²ÎÊýÉùÃ÷±äÁ¿Ãû£¬C++ÖпÉÒÔ²»Óã¬Í·ÎļþÖв»ÐèÒªÐ޸ģ»
const char* str = "helloWorld";
return (*env)->NewStringUTF(env,str);
//C++ÖпÉÒÔÖ±½Óenv->NewStringUTF(
Ïà¹ØÎĵµ£º
×î¼Ñ´ð°¸
1. ±àд·¶ÀýÎĵµ
public class TestNative
{
private native static int Max(int a,int b);
public static void main(String[] args)
{
System.out.println(Max(4,5));
}
static
{
System.loadLibrary("VCdll");
}
}
ÆäÖÐ
LoadLibraryÖеÄDLLÎļþÃû³Æ¿ÉÒÔ ......
×Ô¼ºÔÚ×öÕâ¸ö³ÌÐòµÄʱºò¿´¹ýºÜ¶àµÄ×ÊÁÏ£¬ÉÏÍøÒ²²éÁ˲»ÉÙµÄ×ÊÁÏ£¬¿ÉÊǶà°ë˵µÄÊdzöÉñÈ뻯£¬ÔÆÀïÎíÀï...²»¹â¿´Á˲»Ã÷°×£¬¶øÇÒÊÇÓÐÃ÷°×Ò»µãµÄÈË£¬¿´ÁËÒ²±äµÄÓÐЩģºýÁË¡£
ÕâÀïÎÒÑÚÊÎÒ»Ì×ÍêÕûµÄjava jdbc Á¬½ÓOracle9iµÄ·¶Àý¡£
package com.lxh.dbcon;//´ò°ü
import ......
×î½üÒªÖØÐÂѧϰJava£¬ÕÒ¸öÀý×ÓÀ´Êµ¼ù£¬ÔÚÍøÉÏÕÒÁ˺ܶàÀý³ÌÀ´¿´£¬×Ô¼ºÖØÐ±àдÁËÒ»¸ö̰ʳÉßµÄÀý×Ó£¬¼ÇÔÚÕâÀï¡£
1.SnakeModel.java
import java.util.Observable;
import java.util.LinkedList;
import java.util.Arrays;
import java.util.Random;
import javax.swing.*;
//ObservableÀàÒ»°ã´ú±íÊý¾Ý£¬ÊµÏÖ½Ó¿ÚRunna ......
²Î¿¼:
¡¡¡¡http://danadler.com/jacob/
¡¡¡¡http://jakarta.apache.org/poi/
¡¡¡¡http://www.onjava.com/pub/a/onjava/2003/01/22/poi.html
¡¡¡¡http://www.csdn.net/develop/article/15/15311.shtm
¡¡¡¡http://forum.java.sun.com/thread.jsp?forum=40&thread=382666&tstart=0&trange=15
¡¡¡¡Java Excel ......
s = new String("xyz");´´½¨Á˼¸¸öString Object?Á½¸ö¶ÔÏó¡£
String s="ÄãºÃ";int i=3; s=i+s; Õâ¸ö±í´ïʽ¶ÔÂð?ÔÚjavaÖлáÌáʾÊý¾ÝÀàÐͲ»Æ¥Åä¡£ÒòΪstringÊÇÀà!ÕýÈ·×ö·¨: s+="3" »òÕß s+='3'»òÕß s+=(char)i;
ÎÒÃÇÒªÒýÈëÁíÍâÒ»ÖÖ´´½¨String¶ÔÏóµÄ·½Ê½µÄÌÖÂÛ——ÒýºÅÄÚ°üº¬Îı¾¡£ÕâÖÖ·½Ê½ÊÇStringÌØÓе쬲¢ÇÒË ......