Java JNIÉî¶È·ÖÎöÓëʵ¼ù
Java JNIÊÇJava Native InterfaceµÄËõд£¬ÖÐÎÄ¿ÉÒëΪJava±¾µØµ÷Óá£Java Native Interface (JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£±¾ÎÄÏòÄúÏêϸ½éÉÜJava JNI¡£
Java »·¾³ºÍÓïÑÔ¶ÔÓÚÓ¦ÓóÌÐò¿ª·¢À´ËµÊǷdz£°²È«ºÍ¸ßЧµÄ¡£µ«ÊÇ£¬Ò»Ð©Ó¦ÓóÌÐòÈ´ÐèÒªÖ´Ðд¿ Java ³ÌÐòÎÞ·¨Íê³ÉµÄһЩÈÎÎñ£¬±ÈÈ磺
Óë¾ÉÓдúÂ뼯³É£¬±ÜÃâÖØÐ±àд¡£
ʵÏÖ¿ÉÓÃÀà¿âÖÐËùȱÉٵŦÄÜ¡£¾ÙÀýÀ´Ëµ£¬ÔÚ Java ÓïÑÔÖÐʵÏÖ ping ʱ£¬Äú¿ÉÄÜÐèÒª Internet Control Message Protocol (ICMP) ¹¦ÄÜ£¬µ«»ù±¾Àà¿â²¢Î´ÌṩËü¡£
×îºÃÓëʹÓà C/C++ ±àдµÄ´úÂ뼯³É£¬ÒÔ³ä·Ö·¢¾òÐÔÄÜ»òÆäËûÓë»·¾³Ïà¹ØµÄÏµÍ³ÌØÐÔ¡£
½â¾öÐèÒª·Ç Java ´úÂëµÄÌØÊâÇé¿ö¡£¾ÙÀýÀ´Ëµ£¬ºËÐÄÀà¿âµÄʵÏÖ¿ÉÄÜÐèÒª¿ç°üµ÷ÓûòÕßÐèÒªÈÆ¹ýÆäËû Java °²È«ÐÔ¼ì²é¡£
JNI ÔÊÐíÄúÍê³ÉÕâЩÈÎÎñ¡£ËüÃ÷È··Ö¿ªÁË Java ´úÂëÓë±¾»ú´úÂë(C/C++)µÄÖ´ÐУ¬¶¨ÒåÁËÒ»¸öÇåÎúµÄ API ÔÚÕâÁ½ÕßÖ®¼ä½øÐÐͨÐÅ¡£´ÓºÜ´ó³Ì¶ÈÉÏ˵£¬Ëü±ÜÃâÁ˱¾»ú´úÂë¶Ô JVM µÄÖ±½ÓÄÚ´æÒýÓ㬴ӶøÈ·±£±¾»ú´úÂëÖ»Ðè±àдһ´Î£¬²¢ÇÒ¿ÉÒԿ粻ͬµÄ JVM ʵÏÖ»ò°æ±¾ÔËÐС£
½èÖú JNI£¬±¾»ú´úÂë¿ÉÒÔËæÒâÓë Java ¶ÔÏó½»»¥£¬»ñÈ¡ºÍÉè¼Æ×Ö¶ÎÖµ£¬ÒÔ¼°µ÷Ó÷½·¨£¬¶ø²»»áÏñ Java ´úÂëÖеÄÏàͬ¹¦ÄÜÄÇÑùÊܵ½Öî¶àÏÞÖÆ¡£ÕâÖÖ×ÔÓÉÊÇÒ»°ÑË«Èн££ºËüÎþÉü Java ´úÂëµÄ°²È«ÐÔ£¬»»È¡ÁËÍê³ÉÉÏÊöËùÁÐÈÎÎñµÄÄÜÁ¦¡£ÔÚÄúµÄÓ¦ÓóÌÐòÖÐʹÓà JNI ÌṩÁËÇ¿´óµÄ¡¢¶Ô»úÆ÷×ÊÔ´(ÄÚ´æ¡¢I/O µÈ)µÄµÍ¼¶·ÃÎÊ£¬Òò´ËÄú²»»áÏñÆÕͨ Java ¿ª·¢ÈËÔ±ÄÇÑùÊܵ½°²È«ÍøµÄ±£»¤¡£JNI µÄÁé»îÐÔºÍÇ¿´óÐÔ´øÀ´ÁËһЩ±à³Ìʵ¼ùÉϵķçÏÕ£¬±ÈÈçµ¼ÖÂÐÔÄܽϲ³öÏÖ bug ÉõÖÁ³ÌÐò±ÀÀ£¡£Äú±ØÐë¸ñÍâÁôÒâÓ¦ÓóÌÐòÖеĴúÂ룬²¢Ê¹ÓÃÁ¼ºÃµÄʵ¼ùÀ´±£ÕÏÓ¦ÓóÌÐòµÄ×ÜÌåÍêÕûÐÔ¡£
±¾ÎĽéÉÜ JNI Óû§×î³£Óöµ½µÄ 10 ´ó±àÂëºÍÉè¼Æ´íÎ󡣯äÄ¿±êÊǰïÖúÄúÈÏʶµ½²¢±ÜÃâËüÃÇ£¬ÒÔ±ãÄú¿ÉÒÔ±àд°²È«¡¢¸ßЧ¡¢ÐÔÄܳöÖÚµÄ JNI ´úÂë¡£±¾ÎÄ»¹½«½éÉÜһЩÓÃÓÚÔÚдúÂë»òÒÑÓдúÂëÖвéÕÒÕâЩÎÊÌâµÄ¹¤¾ßºÍ¼¼ÇÉ£¬²¢Õ¹Ê¾ÈçºÎÓÐЧµØÓ¦ÓÃËüÃÇ¡£
Java JNI ±à³ÌȱÏÝ¿ÉÒÔ·ÖΪÁ½Àࣺ
ÐÔÄÜ£º´úÂëÄÜÖ´ÐÐËùÉè¼ÆµÄ¹¦ÄÜ£¬µ«ÔËÐлºÂý»òÕßÒÔijÖÖÐÎʽÍÏÂýÕû¸ö³ÌÐò¡£
ÕýÈ·ÐÔ£º´úÂëÓÐʱÄÜÕý³£ÔËÐУ¬µ«²»Äܿɿ¿µØÌṩËùÐèµÄ¹¦ÄÜ;×µÄÇé¿öÊÇÔì³É³ÌÐò±ÀÀ£»ò¹ÒÆð¡£
ÐÔÄÜȱÏÝ
³ÌÐòÔ±ÔÚʹÓà JNI ʱµÄ 5 ´óÐÔÄÜȱÏÝÈçÏ£º
¡ô²»»º´æ·½·¨ ID¡¢×Ö¶Î ID ºÍÀà
¡ô´¥·¢Êý×鸱±¾
¡ô»Ø·Ã(Reaching back)¶ø²»ÊÇ´«µÝ²ÎÊý
¡ô´íÎóÈ϶¨±¾»ú´úÂëÓë Java ´úÂëÖ®¼äµÄ½çÏÞ
Ïà¹ØÎĵµ£º
¿ìËÙÅÅÐòÊǶÔðÅÝÅÅÐòµÄÒ»ÖָĽø¡£ËüµÄ»ù±¾Ë¼ÏëÊÇ£ºÍ¨¹ýÒ»ÌÉÅÅÐò½«ÒªÅÅÐòµÄÊý¾Ý·Ö¸î³É¶ÀÁ¢µÄÁ½²¿·Ö£¬ÆäÖÐÒ»²¿·ÖµÄËùÓÐÊý¾Ý¶¼±ÈÁíÍâÒ»²»²¿·ÖµÄËùÓÐÊý¾Ý¶¼ÒªÐ¡£¬È»ºóÔÙ°´´Î·½·¨¶ÔÕâÁ½²¿·ÖÊý¾Ý·Ö±ð½øÐпìËÙÅÅÐò£¬Õû¸öÅÅÐò¹ý³Ì¿ÉÒÔµÝ¹é½øÐУ¬ÒÔ´Ë´ïµ½Õû¸öÊý¾Ý±ä³ÉÓÐÐòÐòÁС£
¼ÙÉèÒªÅÅÐòµÄÊý×éÊÇA[1]&hellip ......
http://developers.sun.com/javadb/
Java SE 6 ÐÂÌØÐÔ: Java DB ºÍ JDBC 4.0
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/
³¤¾ÃÒÔÀ´£¬ÓÉÓÚ´óÁ¿£¨ÉõÖÁ¼¸ºõËùÓУ©µÄ Java Ó¦Óö¼ÒÀÀµÓÚÊý¾Ý¿â£¬ÈçºÎʹÓà Java ÓïÑÔ¸ßЧ¡¢¿É¿¿¡¢¼ò½àµØ·ÃÎÊÊý¾Ý¿âÒ»Ö±ÊdzÌÐòÔ±Ãǽò½òÀÖµÀµÄ»°Ì⡣з¢²¼µÄ Java SE 6 Ò²ÔÚÕâ·½Ãæ¸üÉ ......
Abstract
ÔÚ¿ª·¢ÖУ¬Èç¹ûij¸öʵÀýµÄ´´½¨ÐèÒªÏûºÄºÜ¶àϵͳ×ÊÔ´£¬ÄÇôÎÒÃÇͨ³£»áʹÓöèÐÔ¼ÓÔØ»úÖÆ£¬Ò²¾ÍÊÇ˵ֻÓе±Ê¹Óõ½Õâ¸öʵÀýµÄʱºò²Å»á´´½¨Õâ¸öʵÀý£¬Õâ¸öºÃ´¦ÔÚ
µ¥ÀýģʽÖеõ½Á˹㷺ӦÓá£Õâ¸ö»úÖÆÔÚsingle-threaded»·¾³ÏµÄʵÏַdz£¼òµ¥£¬È»¶øÔÚmulti-threaded» ......
·Ç³£¼òµ¥,ÔÚC#ÖÐÖ»ÐèÒªÔÚÀàµÄ·½·¨µÄÉÏ·½ÇÃÈýÏÂ"/"¾Í×Ô¶¯°ïÄãÌí¼ÓÏà¹ØµÄ´úÂë,ÄãÖ»Òª°´×ÅÌîд¾Í¿ÉÒÔÁË,¶øJavaÔòÊÇÊäÈë"/**",ËüÒ²»á×Ô¶¯ÐγÉÏà¹Ø´úÂë,¾ßÌå´úÂëÈçÏÂ:
C#
/// <summary>
/// ÔÚ´ËÌîд×ÜÌåÃèÊö
///</summary>
/// <param name="name">ÕâÀïÌîд²ÎÊýnameµÄÃèÊö</param>
public string ......