java JNI ³¢ÊÔ
¡¡¡¡Ê×ÏÈÒýÓÃһƪÎÄÕ£¬½éÉÜÒ»¸ö¼òµ¥µÄJNIµÄµ÷ÓõĹý³Ì¡£¡¡¡¡JAVAÒÔÆä¿çƽ̨µÄÌØÐÔÉîÊÜÈËÃÇϲ°®£¬¶øÓÖÕýÓÉÓÚËüµÄ¿çƽ̨µÄÄ¿µÄ£¬Ê¹µÃËüºÍ±¾µØ»úÆ÷µÄ¸÷ÖÖÄÚ²¿ÁªÏµ±äµÃºÜÉÙ£¬Ô¼ÊøÁËËüµÄ¹¦ÄÜ¡£½â¾öJAVA¶Ô±¾µØ²Ù×÷µÄÒ»ÖÖ·½·¨¾ÍÊÇJNI¡£¡¡¡¡JAVAͨ¹ýJNIµ÷Óñ¾µØ·½·¨£¬¶ø±¾µØ·½·¨ÊÇÒÔ¿âÎļþµÄÐÎʽ´æ·ÅµÄ£¨ÔÚWINDOWSƽ̨ÉÏÊÇDLLÎļþÐÎʽ£¬ÔÚUNIX»úÆ÷ÉÏÊÇSOÎļþÐÎʽ£©¡£Í¨¹ýµ÷Óñ¾µØµÄ¿âÎļþµÄÄÚ²¿·½·¨£¬Ê¹JAVA¿ÉÒÔʵÏֺͱ¾µØ»úÆ÷µÄ½ôÃÜÁªÏµ£¬µ÷ÓÃϵͳ¼¶µÄ¸÷½Ó¿Ú·½·¨¡£ ¡¡¡¡¼òµ¥½éÉܼ°Ó¦ÓÃÈçÏ£º ¡¡¡¡Ò»¡¢JAVAÖÐËùÐèÒª×öµÄ¹¤×÷ ¡¡¡¡ÔÚJAVA³ÌÐòÖУ¬Ê×ÏÈÐèÒªÔÚÀàÖÐÉùÃ÷Ëùµ÷ÓõĿâÃû³Æ£¬ÈçÏ£º
static { System.loadLibrary(“goodluck”); }
¡¡¡¡ÔÚÕâÀ¿âµÄÀ©Õ¹Ãû×Ö¿ÉÒÔ²»ÓÃд³öÀ´£¬¾¿¾¹ÊÇDLL»¹ÊÇSO£¬ÓÉϵͳ×Ô¼ºÅжϡ£ ¡¡¡¡»¹Ðè¶Ô½«Òªµ÷Óõķ½·¨×ö±¾µØÉùÃ÷£¬¹Ø¼ü×ÖΪnative¡£ÇÒÖ»ÐèÒªÉùÃ÷£¬¶ø²»ÐèÒª¾ßÌåʵÏÖ¡£ÈçÏ£º
public native static void set(int i); public native static int get();
¡¡¡¡È»ºó±àÒë¸ÃJAVA³ÌÐòÎļþ£¬Éú³ÉCLASS£¬ÔÙÓÃJAVAHÃüÁJNI¾Í»áÉú³ÉC/C++µÄÍ·Îļþ¡£ ¡¡¡¡ÀýÈç³ÌÐòtestdll.java£¬ÄÚÈÝΪ£º
public class testdll { static { System.loadLibrary("goodluck"); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
¡¡¡¡ÓÃjavac testdll.java±àÒëËü£¬»áÉú³Étestdll.class¡£ ¡¡¡¡ÔÙÓÃjavah testdll£¬Ôò»áÔÚµ±Ç°Ä¿Â¼ÏÂÉú³Étestdll.hÎļþ£¬Õâ¸öÎļþÐèÒª±»C/C++³ÌÐòµ÷ÓÃÀ´Éú³ÉËùÐèµÄ¿âÎļþ¡£ ¡¡¡¡¶þ¡¢C/C++ÖÐËùÐèÒª×öµÄ¹¤×÷ ¡¡¡¡¶ÔÓÚÒÑÉú³ÉµÄ.hÍ·Îļþ£¬C/C++ËùÐèÒª×öµÄ£¬¾ÍÊǰÑËüµÄ¸÷¸ö·½·¨¾ßÌåµÄʵÏÖ¡£È»ºó±àÒëÁ¬½Ó³É¿âÎļþ¼´¿É¡£ÔÙ°Ñ¿âÎļþ¿½±´µ½JAVA³ÌÐòµÄ·¾¶ÏÂÃæ£¬¾Í¿ÉÒÔÓÃJAVAµ÷ÓÃC/C++ËùʵÏֵŦÄÜÁË¡£ ¡¡¡¡½ÓÉÏÀý×Ó¡£ÎÒÃÇÏÈ¿´Ò»ÏÂtestdll.hÎļþµÄÄÚÈÝ£º
/* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class testdll */ #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif /* * Class: testdll * Method: get * Signature: ()I */ JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass); /* * Class: testdll * Method: set * Signature: (I)V */ JNIEXPORT void J
Ïà¹ØÎĵµ£º
ÒÔÏÂÊÇ Java ÅжÏ×Ö·û´®ÊÇ·ñΪ¿ÕµÄÈýÖÖ·½·¨.
·½·¨Ò»: ×î¶àÈËʹÓõÄÒ»¸ö·½·¨, Ö±¹Û, ·½±ã, µ«Ð§ÂʺܵÍ.
·½·¨¶þ: ±È½Ï×Ö·û´®³¤¶È, ЧÂʸß, ÊÇÎÒÖªµÀµÄ×îºÃÒ»¸ö·½·¨.
·½·¨Èý: Java SE 6.0 ²Å¿ªÊ¼ÌṩµÄ·½·¨, ЧÂʺͷ½·¨¶þ¼¸ºõÏàµÈ, µ«³öÓÚ¼æÈÝÐÔ¿¼ÂÇ, ÍÆ¼öʹÓ÷½·¨¶þ.
ÒÔÏ´úÂëÔÚÎÒ»úÆ÷ÉϵÄÔËÐнá¹û: (»úÆ÷ÐÔÄܲ»Ò», ½ö¹ ......
¹ØÓÚjavaÐéÄâ»úʹÓÃÄÚ´æµÄ˼¿¼
JVM(javaÐéÄâ»ú)Æäʵ¾ÍÊDzÙ×÷ϵͳ(Èçwindows)ÉϵÄÒ»¸öÆÕͨ³ÌÐò(½ø³ÌÃû½Ðjava,Õâ¸ö³ÌÐò¿ÉÒÔ½âÊÍÖ´ÐÐclassÎļþ)¡£
µ±java½ø³ÌÆô¶¯Ê±»áÊ×ÏÈ·ÖÅäÒ»¿é¶ÑÄڴ棨×îСÄڴ棩£¬ÒÔºóÿµ±class×Ö½ÚÂë³ÌÐòÒªÇóJVM(java½ø³Ì)·ÖÅäÄÚ´æÊ±£¬JVM
¾Í»áÔÚÔ¤ÏÈ·ÖÅäµÄÄÇ¿éÄÚ´æÉÏÃæÎªclass×Ö½Ú ......
Reflection ÊÇ Java ³ÌÐò¿ª·¢ÓïÑÔµÄÌØÕ÷Ö®Ò»£¬ËüÔÊÐíÔËÐÐÖÐµÄ Java ³ÌÐò¶Ô×ÔÉí½øÐмì²é£¬»òÕß˵“×ÔÉ󔣬²¢ÄÜÖ±½Ó²Ù×÷³ÌÐòµÄÄÚ²¿ÊôÐÔ¡£ÀýÈ磬ʹÓÃËüÄÜ»ñµÃ Java ÀàÖи÷³ÉÔ±µÄÃû³Æ²¢ÏÔʾ³öÀ´¡£
Java µÄÕâÒ»ÄÜÁ¦ÔÚʵ¼ÊÓ¦ÓÃÖÐÒ²ÐíÓõò»ÊǺܶ࣬µ«ÊÇÔÚÆäËüµÄ³ÌÐòÉè¼ÆÓïÑÔÖиù±¾¾Í²»´æÔÚÕâÒ»ÌØÐÔ¡£ÀýÈ磬Pasc ......
javaÐĵã¡--ºÜºÃµÄjavaѧϰÀú³Ì£¨×ª×ÔÕŹú±¦£© ÊÕ²Ø ´ËÎÄÓÚ2009-10-26±»ÍƼöµ½CSDNÊ×Ò³
ÈçºÎ±»ÍƼö£¿
1. Êý×éÓÐûÓÐlength()Õâ¸ö·½·¨? StringÓÐûÓÐlength()Õâ¸ö·½·¨£¿
´ð£ºÊý×éûÓÐlength()Õâ¸ö·½·¨£¬ÓÐlengthµÄÊôÐÔ¡£
......
1. import java.util.*;
2.(A) public class Test
{ public static void main(String[] args)
{
//Éú³É [0-n) ¸ö²»Öظ´µÄËæ»úÊý st ÓÃÀ´±£´æ ......