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(
Ïà¹ØÎĵµ£º
import java.util.LinkedList;
public abstract class Manager {
private String mThreadPoolName = null;
......
Java¶ÔÏóXMLÐòÁл¯¿ò¼Ü£Simple2.0
SimpleÊÇÒ»¸öXMLÐòÁл¯¿ò¼Ü£¬Ò»¸öJava
°æ±¾¿íÈݵÄÐòÁл¯¿ò¼Ü£¬Äܹ»¿ìËÙÔÚJava
ƽ̨ÉÏ¿ª·¢XML¡£Ö§³Öͨ¹ýannotationsÍêÈ«ÅäÖû¯µÄXML½á¹¹£»Ìṩ°æ±¾¹ÜÀí¿ò¼ÜÔÊÐíÏòǰºÍÏòºó¼æÈÝÐòÁл¯£»¸üºÃµÄÐÔÄÜ£¬Ê¹ÓÃÇáÁ¿¼¶StAXÌáÉýXML·´ÐòÁл¯
½ø³Ì£¬±ÈXStreamºÍJAXB¸ü¿ì£»Í¨¹ýnamespace ......
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ÌØÓе쬲¢ÇÒË ......
±¾ÎÄÀ´×Ô£ºhttp://www.javaeye.com/topic/130025 1 ¼ò½é<o:p></o:p> ¶ÔÏóÐòÁл¯(Serializable)ÊÇÖ¸½«¶ÔÏóת»»Îª×Ö½ÚÐòÁеĹý³Ì£¬¶ø·´ÐòÁл¯ÔòÊǸù¾Ý×Ö½ÚÐòÁлָ´¶ÔÏóµÄ¹ý³Ì¡£<o:p></o:p> ÐòÁл¯Ò»°ãÓÃÓÚÒÔϳ¡¾°£º<o:p></o:p> 1. ÓÀ¾ÃÐÔ±£´æ¶ÔÏ󣬱£´æ¶ÔÏóµÄ×Ö½ÚÐòÁе½±¾µ ......
java jce¶ÔaesËã·¨ÓкܺõÄÖ§³Ö£¬µ«ÊÇĬÈϰ²×°µÄJDK»òÕßJREÊDz»ÄÜÖ§³Öaes192bitÃÜÔ¿ºÍaes256bitÃÜÔ¿Á½ÖÖËã·¨µÄ£¬ÐèÒªµ½sun¹Ù·½ÏÂÔØJava(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files£¬ÒÔÏÂÊÇjce unilimited strength jurisdiction policy files 6µÄ¹Ù·½ ......