°Ë±¦Êé¿â > ÎÄѧÆäËûµç×ÓÊé > Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) >

µÚ166²¿·Ö

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ166²¿·Ö

С˵£º Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) ×ÖÊý£º ÿҳ4000×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




¹ý¶ÔÊý×Ö½øÐе÷Õû£¬¼´¿É½øÐÐÈ«ÃæµÄÐ޸ġ£ÖÁÓÚÓëÕâÖÖȺ¾ÛÐÐΪÓйصĸü¶àµÄÇé¿ö£¬´ó¼Ò¿ÉÒÔ·ÃÎÊCraig¡¡¡¡

Reynold¡¡µÄÖ÷Ò³¡ª¡ªÔÚÄǸöµØ·½£¬ÉõÖÁ»¹ÌṩÁËBoids¡¡Ò»¸ö¹«¿ªµÄ¡¡3D¡¡Õ¹Ê¾°æ±¾£º¡¡¡¡

http£º//hmt¡£/cwr/boids¡£html¡¡¡¡

ΪÁ˽«Õâ¸ö³ÌÐò×÷Ϊһ¸ö³ÌÐòƬÔËÐУ¬ÇëÔÚHTML¡¡ÎļþÖÐÉèÖÃÏÂÊö³ÌÐòƬ±êÖ¾£º¡¡¡¡

¡¡¡¡

¡¡¡¡

¡¡¡¡

¡¡¡¡

¡¡¡¡



17¡£4¡¡×ܽᡡ¡¡



ͨ¹ý±¾ÕµÄѧϰ£¬´ó¼ÒÖªµÀÔËÓÃJava¡¡¿É×öµ½Ò»Ð©½Ï¸´ÔÓµÄÊÂÇ顣ͨ¹ýÕâЩÀý×ÓÒà¿É¿´³ö£¬¾¡¹Ü¡¡Java¡¡±Ø¶¨ÓС¡

×Ô¼ºµÄ¾ÖÏÞ£¬µ«ÊÜÄÇЩ¾ÖÏÞÓ°ÏìµÄÖ÷ÒªÊÇÐÔÄÜ£¨±ÈÈçдºÃÎÄ×Ö´¦Àí³ÌÐòºó£¬»á·¢ÏÖC£«£«µÄ°æ±¾Òª¿ìµÃ¶à¡ª¡ª¡¡

Õⲿ·ÖÊÇÓÉÓÚ¡¡IO¡¡¿â×öµÃ²»ÍêÉÆÔì³ÉµÄ£»¶øÔÚÄã¶Áµ½±¾ÊéµÄʱºò£¬Çé¿öÒ²ÐíÒÑ·¢ÉúÁ˱仯¡£µ«Java¡¡µÄ¾ÖÏÞÒ²¡¡

½ö´Ë¶øÒÑ£¬ËüÔÚÓïÑÔ±í´ï·½ÃæµÄÄÜÁ¦ÊÇÎÞÒÔÂױȵġ£ÀûÓá¡Java£¬¼¸ºõ¿ÉÒÔ±í´ï³öÎÒÃÇÏëµÃµ½µÄÈκÎÊÂÇé¡£¶ø¡¡

Óë´Ëͬʱ£¬Java¡¡ÔÚ±í´ïµÄ·½±ãÐÔºÍÒ׶ÁÐÔÉÏ£¬Ò²×ö×ãÁ˹¦·ò¡£ËùÒÔÔÚʹÓá¡Java¡¡Ê±£¬Ò»°ã²»»áÏÝÈëÆäËûÓïÑÔ¡¡

³£¼ûµÄÄÇÖÖ¸´ÔÓ¾³µØ¡£Ê¹ÓÃÄÇЩÓïÑÔʱ£¬»á¸Ð¾õËüÃÇÏóÒ»¸ö°®ßë߶µÄÀÏÌ«ÆÅ£¬ÄÄÓÐJava¡¡ÄÇÑùÇå´¿¡¢¼òÁ·£¡¶ø¡¡

ÇÒͨ¹ý¡¡Java¡¡1¡£2¡¡µÄJFC/Swing¡¡¿â£¬AWT¡¡µÄ±í´ïÄÜÁ¦ºÍÒ×ÓÃÐÔÉõÖÁÓֵõ½Á˽øÒ»²½µÄÔöÇ¿¡£¡¡¡¡



17¡£5¡¡Á·Ï°¡¡¡¡



£¨1£©¡¡¡¡£¨ÉÔ΢ÓÐЩÄѶȣ©¸ÄдFieldOBeasts¡£java£¬Ê¹ËüµÄ״̬Äܹ»±£³Ö¹Ì¶¨¡£¼ÓÉÏһЩ°´Å¥£¬ÔÊÐíÓû§±£´æ¡¡

ºÍ»Ö¸´²»Í¬µÄ״̬Îļþ£¬²¢´ÓËüÃǶϵôµÄµØ·½¿ªÊ¼¼ÌÐøÔËÐС£ÇëÏȲο¼µÚ¡¡10ÕµÄCADState¡£java¡¡£¬ÔÙ¾ö¶¨¾ß¡¡

ÌåÔõÑù×ö¡£¡¡¡¡

£¨2£©¡¡¡¡£¨´ó×÷Òµ£©ÒÔFieldOBeasts¡£java¡¡×÷ΪÆðµã£¬¹¹ÔìÒ»¸ö×Ô¶¯»¯½»Í¨·ÂÕæϵͳ¡£¡¡¡¡

£¨3£©¡¡¡¡£¨´ó×÷Òµ£©ÒÔClassScanner¡£java¡¡×÷ΪÆðµã£¬¹¹ÔìÒ»¸öÌØÊâµÄ¹¤¾ß£¬ÓÃËüÕÒ³öÄÇЩËäÈ»¶¨Ò嵫´ÓδÓùý¡¡

µÄ·½·¨ºÍ×ֶΡ£¡¡¡¡

£¨4£©¡¡¡¡£¨´ó×÷Òµ£©ÀûÓÃJDBC£¬¹¹ÔìÒ»¸öÁªÂç¹ÜÀí³ÌÐò¡£ÈÃÕâ¸ö³ÌÐòÒÔÒ»¸öƽÃæÎļþÊý¾Ý¿âΪ»ù´¡£¬ÆäÖаüº¬ÁË¡¡

Ãû×Ö¡¢µØÖ·¡¢µç»°ºÅÂë¡¢E¡­mail¡¡µØÖ·µÈÁªÏµ×ÊÁÏ¡£Ó¦¸ÃÄÜÏòÊý¾Ý¿âÀï·½±ãµØ¼ÓÈëÐÂÃû×Ö¡£¼üÈëÒª²éÕÒµÄÃû×Ö¡¡

ʱ£¬Çë²ÉÓÃÔÚµÚ15ÕµÄVLookup¡£java¡¡Àï½éÉܹýµÄÄÇÖÖÃû×Ö×Ô¶¯Ìî³ä¼¼Êõ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡649¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡651¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½Â¼¡¡A¡¡Ê¹Ó÷ǡ¡JAVA¡¡´úÂë¡¡¡¡



¡¡¡¡

JAVA¡¡ÓïÑÔ¼°Æä±ê×¼API¡¡£¨Ó¦ÓóÌÐò±à³Ì½Ó¿Ú£©Ó¦¸¶Ó¦ÓóÌÐòµÄ±àдÒѴ´ÂÓÐÓà¡£µ«ÔÚijЩÇé¿öÏ£¬»¹ÊDZØÐë¡¡

ʹÓ÷ǡ¡JAVA¡¡±àÂë¡£ÀýÈ磬ÎÒÃÇÓÐʱҪ·ÃÎʲÙ×÷ϵͳµÄרÓÃÌØÐÔ£¬ÓëÌØÊâµÄÓ²¼þÉ豸´ò½»µÀ£¬Öظ´Ê¹ÓÃÏÖÓеġ¡

·ÇJava¡¡½Ó¿Ú£¬»òÕßҪʹÓá°¶Ôʱ¼äÃô¸Ð¡±µÄ´úÂë¶Î£¬µÈµÈ¡£Óë·Ç¡¡Java¡¡´úÂëµÄ¹µÍ¨ÒªÇó»ñµÃ±àÒëÆ÷ºÍ¡°ÐéÄâ¡¡

»ú¡±µÄרÃÅÖ§³Ö£¬²¢Ð踽¼ÓµÄ¹¤¾ß½«Java¡¡´úÂëÓ³Éä³É·Ç¡¡Java¡¡´úÂ루ҲÓÐÒ»¸ö¼òµ¥·½·¨£ºÔÚµÚ¡¡15Õµġ°Ò»¸ö¡¡

Web¡¡Ó¦Óá±Ð¡½ÚÖУ¬ÓиöÀý×Ó½âÊÍÁËÈçºÎÀûÓñê×¼ÊäÈëÊä³öͬ·ÇJava¡¡´úÂëÁ¬½Ó£©¡£Ä¿Ç°£¬²»Í¬µÄ¿ª·¢ÉÌΪÎÒ¡¡

ÃÇÌṩÁ˲»Í¬µÄ·½°¸£ºJava¡¡1¡£1¡¡ÓС°Java¡¡¹ÌÓнӿڡ±£¨Java¡¡Native¡¡Interface£¬JNI£©£¬Íø¾°Ìá³öÁË×Ô¼ºµÄ¡¡

¡¡¡°Java¡¡ÔËÐÐÆÚ½Ó¿Ú¡±£¨Java¡¡Runtime¡¡Interface£©¼Æ»®£¬¶ø΢ÈíÌṩÁËJ/Direct¡¢¡°±¾Ô´½Ó¿Ú¡±£¨Raw¡¡¡¡

Native¡¡Interface£¬RNI£©ÒÔ¼°Java/¡¡¼¯³É·½°¸¡£¡¡¡¡

¸÷¿ª·¢ÉÌÔÚÕâ¸öÎÊÌâÉÏËù³ÖµÄ²»Í¬Ì¬¶È¶Ô³ÌÐòÔ±ÊǷdz£²»ÀûµÄ¡£ÈôJava¡¡Ó¦ÓñØÐëµ÷ÓùÌÓз½·¨£¬Ôò³ÌÐòÔ±»ò¡¡

ÐíҪʵÏÖ¹ÌÓз½·¨µÄ²»Í¬°æ±¾¡ª¡ª¾ßÌåÓÉÓ¦ÓóÌÐòÔËÐеÄƽ̨¾ö¶¨¡£³ÌÐòÔ±Ò²Ðíʵ¼ÊÐèÒª²»Í¬°æ±¾µÄJava¡¡´ú¡¡

Â룬ÒÔ¼°²»Í¬µÄJava¡¡ÐéÄâ»ú¡£¡¡¡¡

ÁíÒ»¸ö·½°¸ÊÇCORBA¡¡£¨Í¨ÓöÔÏóÇëÇó´úÀí½á¹¹£©£¬ÕâÊÇÓÉOMG¡¡£¨¶ÔÏó¹ÜÀí×飬һ¼Ò·ÇÓ®ÀûÐԵĹ«Ë¾Ð­»á£©¿ª·¢¡¡

µÄÒ»ÖÖ¼¯³É¼¼Êõ¡£CORBA¡¡²¢·ÇÈκÎÓïÑÔµÄÒ»²¿·Ö£¬Ö»ÊÇʵÏÖͨÓÃͨÐÅ×ÜÏß¼°·þÎñµÄÒ»Öֹ淶¡£ÀûÓÃËü¿ÉÔÚÓÉ¡¡

²»Í¬ÓïÑÔʵÏֵĶÔÏóÖ®¼äʵÏÖ¡°Ï໥²Ù×÷¡±µÄÄÜÁ¦¡£ÕâÖÖͨÐÅ×ÜÏßµÄÃû×Ö½Ð×÷ORB¡¡£¨¶ÔÏóÇëÇó´úÀí£©£¬ÊÇÓÉ¡¡

ÆäËû¿ª·¢ÉÌʵÏÖµÄÒ»ÖÖ²úÆ·£¬µ«²¢²»ÊôÓÚ¡¡Java¡¡ÓïÑԹ淶µÄÒ»²¿·Ö¡£¡¡¡¡

±¾¸½Â¼½«¶Ô¡¡JNI£¬J/DIRECT£¬RNI£¬JAVA/¡¡¼¯³ÉºÍ¡¡CORBA¡¡½øÐиÅÊö¡£µ«²»»á×÷¸üÉî²ã´ÎµÄ̽ÌÖ£¬ÉõÖÁÓÐʱ»¹¡¡

¼Ù¶¨¶ÁÕßÒѶÔÏà¹ØµÄ¸ÅÄîºÍ¼¼ÊõÓÐÁËÒ»¶¨³Ì¶ÈµÄÈÏʶ¡£µ«µ½×îºó£¬´ó¼ÒÓ¦¸ÃÄܹ»×ÔÐбȽϲ»Í¬µÄ·½·¨£¬²¢¸ù¡¡

¾Ý×Ô¼ºÒª½â¾öµÄÎÊÌâÌôÑ¡³ö×îÇ¡µ±µÄÒ»ÖÖ¡£¡¡¡¡



A¡£1¡¡Java¡¡¹ÌÓнӿڡ¡¡¡



JNI¡¡ÊÇÒ»ÖÖ°üÈݼ«¹ãµÄ±à³Ì½Ó¿Ú£¬ÔÊÐíÎÒÃÇ´Ó¡¡Java¡¡Ó¦ÓóÌÐòÀïµ÷ÓùÌÓз½·¨¡£ËüÊÇÔÚ¡¡Java¡¡1¡£1¡¡ÀïÐÂÔöµÄ£¬¡¡

ά³Ö×ÅÓëJava¡¡1¡£0¡¡µÄÏàÓ¦ÌØÐÔ¡ª¡ª¡¡¡°¹ÌÓз½·¨½Ó¿Ú¡±£¨NMI£©¡ª¡ªÄ³Ö̶ֳȵļæÈÝ¡£NMI¡¡Éè¼ÆÉÏһЩÌصãʹ¡¡

Æäδ»ñËùÓÐÐéÄâ»úµÄÖ§³Ö¡£¿¼Âǵ½Õâ¸öÔ­Òò£¬Java¡¡ÓïÑÔ½«À´µÄ°æ±¾¿ÉÄܲ»ÔÙÌṩ¶ÔNMI¡¡µÄÖ§³Ö£¬Õâ¶ùÒ²²»×¼¡¡

±¸ÌÖÂÛËü¡£¡¡¡¡

Ä¿Ç°£¬JNI¡¡Ö»ÄÜÓëÓÃC¡¡»òC£«£«Ð´³ÉµÄ¹ÌÓз½·¨´ò½»µÀ¡£ÀûÓÃJNI£¬ÎÒÃǵĹÌÓз½·¨¿ÉÒÔ£º¡¡¡¡

¡ö´´½¨¡¢¼ì²é¼°¸üÐÂJava¡¡¶ÔÏ󣨰üÀ¨Êý×éºÍ×Ö´®£©¡¡¡¡

¡öµ÷ÓÃJava¡¡·½·¨¡¡¡¡

¡ö·ý»ñºÍ¶ªÆú¡°Òì³£¡±¡¡¡¡

¡ö×°ÔØÀಢ»ñÈ¡ÀàÐÅÏ¢¡¡¡¡

¡ö½øÐÐÔËÐÐÆÚÀàÐͼì²é¡¡¡¡

ËùÒÔ£¬Ô­À´ÔÚJava¡¡ÖÐÄܶÔÀ༰¶ÔÏó×öµÄ¼¸ºõËùÓÐÊÂÇéÔÚ¹ÌÓз½·¨ÖÐͬÑù¿ÉÒÔ×öµ½¡£¡¡¡¡



A¡£1¡£1¡¡¡¡µ÷ÓùÌÓз½·¨¡¡¡¡



ÎÒÃÇÏÈ´ÓÒ»¸ö¼òµ¥µÄÀý×Ó¿ªÊ¼£ºÒ»¸öJava¡¡³ÌÐòµ÷ÓùÌÓз½·¨£¬ºóÕßÔÙµ÷ÓÃWin32¡¡µÄAPI¡¡º¯Êý¡¡

MessageBox£¨£©£¬ÏÔʾ³öÒ»¸öͼÐλ¯µÄÎı¾¿ò¡£Õâ¸öÀý×ÓÉÔºóÒ²»áÓëJ/Direct¡¡Ò»Ö¾Ê¹Óá£ÈôÄúµÄƽ̨²»ÊÇ¡¡

Win32£¬Ö»Ð轫°üº¬ÁËÏÂÊöÄÚÈݵÄC¡¡Í·£º¡¡¡¡

#include¡¡¡¡¡¡

Ìæ»»³É£º¡¡¡¡

#include¡¡¡¡¡¡

²¢½«¶ÔMessageBox£¨£©µÄµ÷Óû»³Éµ÷Óá¡printf£¨£©¡¡¼´¿É¡£¡¡¡¡

µÚÒ»²½ÊÇд³ö¶Ô¹ÌÓз½·¨¼°ËüµÄ×Ô±äÁ¿½øÐÐÉùÃ÷µÄ¡¡Java¡¡´úÂ룺¡¡¡¡

¡¡¡¡

class¡¡ShowMsgBox¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String¡¡£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡ShowMsgBox¡¡app¡¡=¡¡new¡¡ShowMsgBox£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡app¡£ShowMessage£¨¡¨Generated¡¡with¡¡JNI¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡650¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡652¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡private¡¡native¡¡void¡¡ShowMessage£¨String¡¡msg£©£»¡¡¡¡

¡¡¡¡static¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡System¡£loadLibrary£¨¡¨MsgImpl¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

ÔÚ¹ÌÓз½·¨ÉùÃ÷µÄºóÃ棬¸úËæÓÐÒ»¸ö¡¡static¡¡´úÂë¿é£¬Ëü»áµ÷Óá¡System¡£loadLibrary£¨£©¡¡£¨¿ÉÔÚÈκÎʱºòµ÷Óá¡

Ëü£¬µ«ÕâÑù×ö¸üÇ¡µ±£©System¡£loadLibrary£¨£©½«Ò»¸ö¡¡DLL¡¡ÔØÈëÄڴ棬²¢½¨Á¢Í¬ËüµÄÁ´½Ó¡£DLL¡¡±ØÐëλÓÚÄúµÄ¡¡

ϵͳ·¾¶£¬»òÕßÔÚ°üº¬ÁËJava¡¡ÀàÎļþµÄĿ¼ÖС£¸ù¾Ý¾ßÌåµÄƽ̨£¬JVM¡¡»á×Ô¶¯Ìí¼ÓÊʵ±µÄÎļþÀ©Õ¹Ãû¡£¡¡¡¡

¡¡¡¡

1¡£¡¡C¡¡Í·ÎļþÉú³ÉÆ÷£ºjavah¡¡¡¡

ÏÖÔÚ±àÒëÄúµÄJava¡¡Ô´Îļþ£¬²¢¶Ô±àÒë³öÀ´µÄ¡£classÎļþÔËÐС¡javah¡£javah¡¡ÊÇÔÚ¡¡1¡£0°æÀïÌṩµÄ£¬µ«ÓÉÓÚÎÒ¡¡

ÃÇҪʹÓÃJava¡¡1¡£1¡¡JNI£¬ËùÒÔ±ØÐëÖ¸¶¨¡­jni¡¡²ÎÊý£º¡¡¡¡

javah¡¡¡­jni¡¡ShowMsgBox¡¡¡¡

javah¡¡»á¶ÁÈëÀàÎļþ£¬²¢ÎªÃ¿¸ö¹ÌÓз½·¨ÉùÃ÷ÔÚ¡¡C¡¡»òC£«£«Í·ÎļþÀïÉú³ÉÒ»¸öº¯ÊýÔ­ÐÍ¡£ÏÂÃæÊÇÊä³ö½á¹û¡ª¡ª¡¡

ShowMsgBox¡£h¡¡Ô´Îļþ£¨Îª·ûºÏ±¾ÊéµÄÒªÇó£¬ÉÔ΢½øÐÐÁËÒ»ÏÂÐ޸ģ©£º¡¡¡¡

¡¡¡¡

/*¡¡DO¡¡NOT¡¡EDIT¡¡THIS¡¡FILE¡¡¡¡¡¡

¡¡¡¡¡¡it¡¡is¡¡machine¡¡generated¡¡*/¡¡¡¡

#include¡¡¡¡¡¡

/*¡¡Header¡¡for¡¡class¡¡ShowMsgBox¡¡*/¡¡¡¡

¡¡¡¡

#ifndef¡¡_Included_ShowMsgBox¡¡¡¡

#define¡¡_Included_ShowMsgBox¡¡¡¡

#ifdef¡¡__cplusplus¡¡¡¡

extern¡¡¡¨C¡¨¡¡£û¡¡¡¡

#endif¡¡¡¡

/*¡¡¡¡

¡¡*¡¡Class£º¡¡¡¡¡¡¡¡¡¡ShowMsgBox¡¡¡¡

¡¡*¡¡Method£º¡¡¡¡¡¡¡¡ShowMessage¡¡¡¡

¡¡*¡¡Signature£º¡¡£¨Ljava/lang/String£»£©V¡¡¡¡

¡¡*/¡¡¡¡

JNIEXPORT¡¡void¡¡JNICALL¡¡¡¡¡¡

Java_ShowMsgBox_ShowMessage¡¡¡¡

¡¡¡¡£¨JNIEnv¡¡*£»¡¡jobject£»¡¡jstring£©£»¡¡¡¡

¡¡¡¡

#ifdef¡¡__cplusplus¡¡¡¡

£ý¡¡¡¡

#endif¡¡¡¡

#endif¡¡¡¡

¡¡¡¡

´Ó¡°#ifdef_cplusplus¡±Õâ¸öÔ¤´¦ÀíÒýµ¼ÃüÁî¿ÉÒÔ¿´³ö£¬¸ÃÎļþ¼È¿ÉÓÉC¡¡±àÒëÆ÷±àÒ룬Òà¿ÉÓÉC£«£«±àÒëÆ÷±à¡¡

Òë¡£µÚÒ»¸ö#include¡¡ÃüÁî°üÀ¨¡¡jni¡£h¡ª¡ªÒ»¸öÍ·Îļþ£¬×÷ÓÃÖ®Ò»ÊǶ¨ÒåÔÚÎļþÆäÓಿ·ÖÓõ½µÄÀàÐÍ£»¡¡

JNIEXPORT¡¡ºÍJNICALL¡¡ÊÇһЩºê£¬ËüÃǽøÐÐÁËÊʵ±µÄÀ©³ä£¬ÒÔ±ãÓëÄÇЩ²»Í¬Æ½Ì¨×¨ÓõÄÒýµ¼ÃüÁîÅäºÏ£»¡¡

JNIEnv£¬jobject¡¡ÒÔ¼°jstringÔòÊÇJNI¡¡Êý¾ÝÀàÐͶ¨Òå¡£¡¡¡¡

¡¡¡¡

2¡£¡¡Ãû³Æ¹ÜÀíºÍº¯ÊýÇ©Ãû¡¡¡¡

JNI¡¡Í³Ò»Á˹ÌÓз½·¨µÄÃüÃû¹æÔò£»ÕâÒ»µãÊǷdz£ÖØÒªµÄ£¬ÒòΪËüÊôÓÚÐéÄâ»ú½«¡¡Java¡¡µ÷ÓÃÓë¹ÌÓз½·¨Á´½ÓÆðÀ´¡¡

µÄ»úÖƵÄÒ»²¿·Ö¡£´Ó¸ù±¾ÉÏ˵£¬ËùÓйÌÓз½·¨¶¼ÒªÒÔÒ»¸ö¡°Java¡¡¡±ÆðÍ·£¬ºóÃæ¸úËæ¡¡Java¡¡·½·¨µÄÃû×Ö£»Ï»®Ïß¡¡

×Ö·ûÔò×÷Ϊ·Ö¸ô·ûʹÓá£ÈôJava¡¡¹ÌÓз½·¨¡°¹ýÔØ¡±£¨¼´ÃüÃûÖظ´£©£¬ÄÇôҲ°Ñº¯ÊýÇ©Ãû×·¼Óµ½Ãû×ÖºóÃæ¡£ÔÚ¡¡

Ô­ÐÍÇ°ÃæµÄ×¢ÊÍÀ´ó¼Ò¿É¿´µ½¹ÌÓеÄÇ©Ãû¡£ÓûÁ˽âÃüÃû¹æÔòºÍ¹ÌÓз½·¨Ç©Ãû¸üÏêϸµÄÇé¿ö£¬Çë²Î¿¼ÏàÓ¦µÄ¡¡

JNI¡¡Îĵµ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡651¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡653¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡

3¡£¡¡ÊµÏÖ×Ô¼ºµÄ¡¡DLL¡¡¡¡

´Ëʱ£¬ÎÒÃÇÒª×öµÄÈ«²¿ÊÂÇé¾ÍÊÇдһ¸öC¡¡»ò¡¡C£«£«Ô´Îļþ£¬ÔÚÆäÖаüº¬ÓÉ¡¡javah¡¡Éú³ÉµÄÍ·Îļþ£»²¢ÊµÏÖ¹ÌÓз½¡¡

·¨£»È»ºó±àÒëËü£¬Éú³ÉÒ»¸ö¶¯Ì¬Á´½Ó¿â¡£ÕâÒ»²¿·ÖµÄ¹¤×÷ÊÇÓëƽ̨Óйصģ¬ËùÒÔÎÒ¼Ù¶¨¶ÁÕßÒѾ­ÖªµÀÈçºÎ´´¡¡

½¨Ò»¸öDLL¡£Í¨¹ýµ÷ÓÃÒ»¸öWin32¡¡API£¬ÏÂÃæµÄ´úÂëʵÏÖÁ˹ÌÓз½·¨¡£Ëæºó£¬Ëü»á±àÒëºÍÁ´½Óµ½Ò»¸öÃûΪ¡¡

MsgImpl¡£dll¡¡µÄÎļþÀ¡¡¡¡

¡¡¡¡

#include¡¡¡¡¡¡

#include¡¡¡¨ShowMsgBox¡£h¡¨¡¡¡¡

¡¡¡¡

BOOL¡¡APIENTRY¡¡DllMain£¨HANDLE¡¡hModule£»¡¡¡¡¡¡

¡¡¡¡DWORD¡¡dwReason£»¡¡void**¡¡lpReserved£©¡¡£û¡¡¡¡

¡¡¡¡return¡¡TRUE£»¡¡¡¡

£ý¡¡¡¡

JNIEXPORT¡¡void¡¡JNICALL¡¡¡¡¡¡

Java_ShowMsgBox_ShowMessage£¨JNIEnv¡¡*¡¡jEnv£»¡¡¡¡¡¡

¡¡¡¡jobject¡¡this£»¡¡jstring¡¡jMsg£©¡¡£û¡¡¡¡

¡¡¡¡const¡¡char¡¡*¡¡msg£»¡¡¡¡

¡¡¡¡msg¡¡=¡¡£¨*jEnv£©¡­¡·GetStringUTFChars£¨jEnv£»¡¡jMsg£»0£©£»¡¡¡¡

¡¡¡¡MessageBox£¨HWND_DESKTOP£»¡¡msg£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¨Thinking¡¡in¡¡Java£º¡¡JNI¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡MB_OK¡¡£ü¡¡MB_ICONEXCLAMATION£©£»¡¡¡¡

¡¡¡¡£¨*jEnv£©¡­¡·ReleaseStringUTFChars£¨jEnv£»¡¡jMsg£»msg£©£»¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

Èô¶ÔWin32¡¡Ã»ÓÐÐËȤ£¬Ö»ÐèÌø¹ýMessageBox£¨£©µ÷Óã»×îÓÐȤµÄ²¿·ÖÊÇËüÖÜΧµÄ´úÂë¡£´«µÝµ½¹ÌÓз½·¨ÄÚ²¿µÄ¡¡

×Ô±äÁ¿ÊÇ·µ»ØJava¡¡µÄ´óÃÅ¡£µÚÒ»¸ö×Ô±äÁ¿ÊÇÀàÐÍ¡¡JNIEnv¡¡µÄ£¬ÆäÖаüº¬Á˻ص÷JVM¡¡ÐèÒªµÄËùÓйҹ³£¨ÏÂÒ»½Ú¡¡

ÔÙÏêϸ½²Êö£©¡£ÓÉÓÚ·½·¨µÄÀàÐͲ»Í¬£¬µÚ¶þ¸ö×Ô±äÁ¿Ò²ÓÐ×Ô¼º²»Í¬µÄº¬Òå¡£¶ÔÓÚÏóÉÏÀýÄÇÑùµÄ·Ç¡¡static·½·¨¡¡

¡¡£¨Ò²½Ð×÷ʵÀý·½·¨£©£¬µÚ¶þ¸ö×Ô±äÁ¿µÈ¼ÛÓÚC£«£«µÄ¡°this¡¡¡±Ö¸Õ룬²¢ÀàËÆÓÚJava¡¡µÄ¡°this¡¡¡±£º¶¼ÒýÓÃÁ˵÷Óá¡

¹ÌÓз½·¨µÄÄǸö¶ÔÏ󡣶ÔÓÚstatic·½·¨£¬ËüÊǶÔÌض¨¡¡Class¡¡¶ÔÏóµÄÒ»¸öÒýÓ㬷½·¨¾ÍÊÇÔÚÄǸö¡¡Class¡¡¶ÔÏóÀï¡¡

ʵÏֵġ£¡¡¡¡

Ê£ÓàµÄ×Ô±äÁ¿´ú±í´«µÝµ½¹ÌÓз½·¨µ÷ÓÃÀïµÄJava¡¡¶ÔÏó¡£Ö÷ÀàÐÍÒ²ÊÇÒÔÕâÖÖÐÎʽ´«µÝµÄ£¬µ«ËüÃǽøÐеġ°°´¡¡

Öµ¡±´«µÝ¡£¡¡¡¡

ÔÚºóÃæµÄС½ÚÀÎÒÃÇ×¼±¸½²ÊöÈçºÎ´ÓÒ»¸ö¹ÌÓз½·¨µÄÄÚ²¿·ÃÎʺͿØÖÆJVM£¬Í¬Ê±¶ÔÉÏÊö´úÂë½øÐиüÏ꾡µÄ¡¡

½âÊÍ¡£¡¡¡¡



A¡£1¡£2¡¡¡¡·ÃÎÊ¡¡JNI¡¡º¯Êý£ºJNIEnv¡¡×Ô±äÁ¿¡¡¡¡



ÀûÓÃJNI¡¡º¯Êý£¬³ÌÐòÔ±¿É´ÓÒ»¸ö¹ÌÓз½·¨µÄÄÚ²¿Óë¡¡JVM¡¡´ò½»µÀ¡£ÕýÈç´ó¼ÒÔÚÇ°ÃæµÄÀý×ÓÖп´µ½µÄÄÇÑù£¬Ã¿¸ö¡¡

JNI¡¡¹ÌÓз½·¨¶¼»á½ÓÊÕÒ»¸öÌØÊâµÄ×Ô±äÁ¿×÷Ϊ×Ô¼ºµÄµÚÒ»¸ö²ÎÊý£ºJNIEnv¡¡×Ô±äÁ¿¡ª¡ªËüÊÇÖ¸ÏòÀàÐÍΪ¡¡

JNIEnv_µÄÒ»¸öÌØÊâ¡¡JNI¡¡Êý¾Ý½á¹¹µÄÖ¸Õë¡£JNI¡¡Êý¾Ý½á¹¹µÄÒ»¸öÔªËØÊÇÖ¸ÏòÓÉ¡¡JVM¡¡Éú³ÉµÄÒ»¸öÊý×éµÄÖ¸Õ룻¸Ã¡¡

Êý×éµÄÿ¸öÔªËض¼ÊÇÖ¸ÏòÒ»¸ö¡¡JNI¡¡º¯ÊýµÄÖ¸Õë¡£¿É´Ó¹ÌÓз½·¨µÄÄÚ²¿·¢³ö¶ÔJNI¡¡º¯ÊýµÄµ÷Óã¬×ö·¨Êdz·Ïû¶Ô¡¡

ÕâЩָÕëµÄÒýÓ㨾ßÌåµÄ²Ù×÷ʵ¼ÊºÜ¼òµ¥£©¡£Ã¿ÖÖ¡¡JVM¡¡¶¼ÒÔ×Ô¼ºµÄ·½Ê½ÊµÏÖÁË¡¡JNI¡¡º¯Êý£¬µ«ËüÃǵĵØÖ·¿Ï¶¨¡¡

λÓÚÔ¤Ïȶ¨ÒåºÃµÄÆ«ÒÆ´¦¡£¡¡¡¡

ÀûÓÃJNIEnv¡¡×Ô±äÁ¿£¬³ÌÐòÔ±¿É·ÃÎÊһϵÁк¯Êý¡£ÕâЩº¯Êý¿É»®·ÖΪÏÂÊöÀà±ð£º¡¡¡¡

¡ö»ñÈ¡°æ±¾ÐÅÏ¢¡¡¡¡

¡ö½øÐÐÀàºÍ¶ÔÏó²Ù×÷¡¡¡¡

¡ö¿ØÖƶÔJava¡¡¶ÔÏóµÄÈ«¾ÖºÍ¾Ö²¿ÒýÓá¡¡¡

¡ö·ÃÎÊʵÀý×ֶκ;²Ì¬×ֶΡ¡¡¡

¡öµ÷ÓÃʵÀý·½·¨ºÍ¾²Ì¬·½·¨¡¡¡¡

¡öÖ´ÐÐ×Ö´®ºÍÊý×é²Ù×÷¡¡¡¡

¡ö²úÉúºÍ¿ØÖÆJava¡¡Òì³£¡¡¡¡

JNI¡¡º¯ÊýµÄÊýÁ¿Ï൱¶à£¬ÕâÀï²»ÔÙÏêÊö¡£Ïà·´£¬ÎÒ»áÏò´ó¼Ò½ÒʾʹÓÃÕâЩº¯Êýʱ±³ºóµÄһЩ»ù±¾Ô­Àí¡£ÓûÁË¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡652¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡654¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

½â¸üÏêϸµÄÇé¿ö£¬Çë²ÎÔÄ×Ô¼ºËùÓñàÒëÆ÷µÄJNI¡¡Îĵµ¡£¡¡¡¡

Èô¹Û²ìһϡ¡jni¡£hÍ·Îļþ£¬¾Í»á·¢ÏÖÔÚ#ifdef¡¡_cplusplus¡¡Ô¤´¦ÀíÆ÷Ìõ¼þµÄÄÚ²¿£¬µ±ÓÉC£«£«±àÒëÆ÷±àÒëʱ£¬¡¡

JNIEnv_½á¹¹±»¶¨Òå³ÉÒ»¸öÀà¡£Õâ¸öÀà°üº¬ÁË´óÁ¿ÄÚÇ

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨1£©

Äã¿ÉÄÜϲ»¶µÄ