C/C++ÓÚJavaÖ®¼äµÄ»¥Ïàµ÷ÓÃ
ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡£±ÈÈ磬GetObjectClass£¬GetMethodID£¬CallObjectMethod£¬NewObject£¬FindClassµÈ½Ó¿Ú£¬¼´¿ÉÍê³ÉC/C++¶ÔJava½Ó¿ÚµÄµ÷Óá£
ÁíÍ⣬ÐèҪעÒâµÄÒ»¸öµØ·½ÊÇ£¬¹ØÓÚsignature¡£±ÈÈ磬ÔÚ jmethodID GetMethodID(jclass clazz, const char *name,
const char *sig) º¯ÊýÖеĵÚÈý¸ö²ÎÊý£¬¾ÍÐèÒªº¯ÊýµÄsignature¡£ÄÇÔõô֪µÀJava·½·¨µÄsignatureÄØ£¿
ÆäʵJDK£¬ÌṩÁ˲鿴Java·½·¨µÄsignature¡£·½·¨ÈçÏ£º
(1)¡¢CMD£¬È¥µ½xxx.classËùÔÚµÄĿ¼¡£
(2)¡¢ÊäÈëÃüÁjavap -s xxx
(3)¡¢½á¹û³ÊÏÖÔÚÄãÑÛǰ¡£
ÑÓÉ죺Android NDKÒ²ÀàËÆ£¬Í¬Ñù¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄ»¥µ÷¡£
Ïà¹ØÎĵµ£º
1. MD5¼ÓÃÜ£¬³£ÓÃÓÚ¼ÓÃÜÓû§ÃûÃÜÂ룬µ±Óû§Ñé֤ʱ¡£
¡¡ ¡¡protected byte[] encrypt(byte[] obj) ...{
¡¡¡¡try ...{
¡¡¡¡MessageDigest md5 = MessageDigest.getInstance("MD5");
¡¡¡¡md5.update(obj);
¡¡¡¡return md5.digest();
¡¡¡¡} catch (NoSuchAlgorithmException e) ...{
¡¡¡¡e.printStackTrace();
¡ ......
=====================================
ǰÑÔ
ÔÚ̫ԾÀúÁËÒ»ÄêµÄÍ´¿à¿ª·¢Ö®ºó£¬ÏîÄ¿ÒѾÈÕÇ÷Îȶ¨£¬½ÓÏÂÀ´µÄ¹¤×÷¾ÍÊÇÄÃÏÖÓеĴúÂëµ½ÆäËûµÄÊ¡ÊнøÐÐʵʩ¡¢È»ºó×öһЩ±¾µØ»¯¿ª·¢¡£ÈÕ×ÓÏà¶ÔÇáËÉÁËÐí¶à£¬ÓÚÊÇ¿ÉÒÔ³é³öʱ¼äÀ´ÎÂϰһÏ»ù´¡µÄ¼¼Êõ֪ʶ£¬¸ø×Ô¼ºÁÐÁËÒ»¸ö¸´Ï°Ìá¸Ù£¬ÕâÒ²ÊÇÒ»¸öjava³ÌÐòÔ±ËùÓ¦¸ÃÕÆÎÕµÄ֪ʶÂöÂç¡£
=== ......
ArcGIS Server9.3ÍêÕûÇåÎú°²×°Á÷³Ì
ÒÔϵÄArcGIS Server9.3°²×°Á÷³ÌÊÇÎÒ¸öÈË×ܽá³öÀ´µÄ£¬ÔÚwindowXP2Ñé֤ͨ¹ý£¬ÐèÒªµÄ»°£¬Ï£ÍûÓõÄ×Å¡£
Ò»¡¢ArcGIS Server²úÆ·°üÀ¨Á½¸ö²¿·Ö£º
1¡¢GIS Server£¬ËüÊÇÒ»¸öÌṩGIS·þÎñµÄ·þÎñÆ÷Èí¼þ²úÆ·£¬°üÀ¨Ò»ÏµÁкËÐÄAO¿âºÍÒ»¸ö¹ ......
ÎÄÕÂÓÃʵÀý´úÂëչʾÁËJavaÖжàÏ̷߳ÃÎʹ²Ïí×ÊÔ´
ʱÏß³Ìͬ²½
µÄÖØÒªÐÔ¡£
·Ö±ðͨ¹ýÔÚÁ½¸öÏß³ÌÖÐͬʱ·ÃÎÊ(µ÷ÓÃget_id*·½·¨)¾¹ýͬ²½´¦Àí(lock¼°Synchronized)µÄ¹²Ïí×ÊÔ´(tmp)¼°Î´¾¹ýͬ²½´¦ÀíµÄ¹²Ïí×ÊÔ´(tmp)À´ËµÃ÷ͬ²½´¦ÀíµÄµÄ×÷Óá£
mainÖзÖÁ½²¿·Ö:
1£©Ç°°ë²¿·Ö£¬non-synchronization²¿·ÖÓÃÀ´²âÊÔûÓÐ×öͬ²½´¦ÀíµÄ´úÂë ......