javaʹÓÃJNIµ÷ÓÃC++º¯Êý
ÍøÉÏÓÐÁ˺ܶàÕâÑùµÄÎÄÕ£¬²»¹ý¸Ð¾õ²¢²»ÊǺÜÈ«£¬ÎÒ¶¼¶«ÕÒÎ÷ÕÒ²Å×îÖÕ°ÑJAVAµ÷ÓÃc++¸ø¸ã¶¨¡£
ÏÂÃæÒýÓÃÁ˺ܶàÍøÉÏÒѾÓеĵÄÄÚÈÝ£¬ÎÒÔÚÕâÀïÖ»ÊÇÕûºÏÒ»´Î£¬ÈÃÒÔºóµÄÅóÓÑÉÙ×ßÍøÂ·¡£
¶à˵ÎÞÒæ£¬¾ßÌåÈçÏ£º
×÷Õß:mykoma
¼ÙÉèËùÓÐÎļþ¶¼·ÅÔÚd:\
Step 1:
дJAVAÎļþ
ÀýÈç³ÌÐòtestdll.java£¬ÄÚÈÝΪ£º
public class testdll {
static{
System.loadLibrary("testdll");
}
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++³ÌÐòµ÷ÓÃÀ´Éú³ÉËùÐèµÄ¿âÎļþ¡£
Step 2:
¸ù¾Ýtestdll.hдC++Îļþtestdll.cpp
testdll.cppÄÚÈÝΪ£º
#include "testdll.h"
int i = 0;
JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass) {
return 2*i;
}
JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint j) {
i = j;
}
Step 3:
Éú³Étestdll.dll
ÕâÒ»²½ÐèҪעÒ⣬ÎÒ×ʼҲÊÇÕÒÁ˺ܶà×ÊÁϲÅŪÕýÈ·
ÕâÀïÎÒʹÓõÄV
Ïà¹ØÎĵµ£º
ºÜ¶àÍøÓÑ×ÉѯѧϰJavaÓÐûÓÐʲô½Ý¾¶,ÎÒ˵“ÎÞËû£¬Î¨ÊÖÊì¶û”¡£µ«ÊÇÉÐѧÌÃÔ¸Ò⽫һЩ¾Ñéд³öÀ´£¬ÒÔ±ãºóÀ´ÕßÉÙ×ßÍä·,°ïÖú±ðÈËÊÇ×î´óµÄ¿ìÀÖÂ
ÒªÏëѧºÃJava£¬Ê×ÏÈÒªÖªµÀJavaµÄ´óÖ·ÖÀà¡£ÎÒÃÇÖªµÀ£¬×Ô´ÓSunÍÆ³öJavaÒÔÀ´£¬¾ÍÁ¦Í¼Ê¹Ö®ÎÞËù²»°ü£¬ËùÒÔJava·¢Õ¹µ½ÏÖÔÚ£¬°´Ó¦ÓÃÀ´·ÖÖ÷Òª·ÖΪÈý´ó¿é£ºJ2SE,J2MEºÍJ2EE, ......
Ïß³Ì×é
ÔÚJavaÖÐÿһ¸öÏ̶߳¼¹éÊôÓÚij¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±£¬ÀýÈçÔÚÖ÷º¯Êýmain()Ö÷¹¤×÷Á÷³ÌÖвúÉúÒ»¸öỊ̈߳¬Ôò²úÉúµÄÏß³ÌÊôÓÚmainÕâ¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±¡£¼òµ¥µØËµ£¬Ïß³Ì×é¾ÍÊÇÓÉÏß³Ì×é³ÉµÄ¹ÜÀíÏ̵߳ÄÀ࣬Õâ¸öÀàÊÇjava.lang.ThreadGroupÀà¡£
¿ÉÒÔͨ¹ýʹÓÃÈçÏ´úÂë»ñÈ¡´ËÏß³ÌËùÊôÏß³Ì×éµÄÃû³Æ¡£
Thread.currentThread().ge ......
Java Cglib
1.CGLIB°üµÄ½éÉÜ
´úÀíΪ¿ØÖÆÒª·ÃÎʵÄÄ¿±ê¶ÔÏóÌṩÁËÒ»ÖÖ;¾¶¡£µ±·ÃÎʶÔÏóʱ£¬ËüÒýÈëÁËÒ»¸ö¼ä½ÓµÄ²ã¡£JDK×Ô´Ó1.3°æ±¾¿ªÊ¼£¬¾ÍÒýÈëÁ˶¯Ì¬´úÀí£¬²¢ÇÒ¾³£±»ÓÃÀ´¶¯Ì¬µØ´´½¨´úÀí¡£JDKµÄ¶¯Ì¬´úÀíÓÃÆðÀ´·Ç³£¼òµ¥£¬µ±ËüÓÐÒ»¸öÏÞÖÆ£¬¾ÍÊÇʹÓö¯Ì¬´úÀíµÄ¶ÔÏó±ØÐëʵÏÖÒ»¸ö»ò¶à¸ö½Ó¿Ú¡£Èç¹ûÏë´úÀ ......
ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ¹²ÓÐÈý´óÌØÐÔ£º·â×°¡¢¼Ì³Ð¡¢¶à̬£»
ÕâÈý´óÌØÐÔÖ®¼äÏ໥¹ØÁª£¬ÆäÖзâ×°ÐÔÊÇÃæÏò¶ÔÏóµÄ»ù´¡£¬¼Ì³ÐÐÔÊÇÈí¼þÖØÓõĹؼü¡£¶ø¶à̬ÐÔÔò±ØÐë´æÔÚÓڼ̳еĻ·¾³Ö®ÖУ¬ÊǶÔÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄ²¹³ä¡£
·â×°£»
Java5.0ÐÂÌØÐÔ£»»ù±¾Êý¾ÝÀàÐÍà·â×°Àà ·âÏ䣻 ·â×°Ààà»ù±¾Êý¾ÝÀàÐÍ ²ðÏ䣻
package review;
......
java£º4Àà8ÖÖ»ù´¡Êý¾ÝÀàÐÍ£º
ÕûÐÍ£ºbyte short int long
¸¡µãÐÍ: float double
²¼¶ûÐÍ£ºboolean
×Ö·ûÐÍ£ºchar
³ýÁË4Àà8ÖÖ»ù´¡Êý¾ÝÀàÐÍ£¬ÆäËûµÄÊý¾ÝÀàÐͶ¼ÊÇÒýÓÃÀàÐÍÀýÈ綨ÒåµÄclass µÈµÈ£¬ÕâÒ»µãÒì³£ÖØÒª¡£·ñÔò»áµ¼ÖÂÔÚʹÓÃcontainerʱ³ö´í£¬Ã¿Ìí¼ÓÒ»¸ö¶ÔÏó½øÈëcontainer¶¼±ØÐëÊÇÒ»¸ö¶ÔÏó¶ø²» ......