ÓÃDelphi¿ª·¢JNI(Java+Native+Interface)Ó¦ÓÃ
JNI(Java+Native+Interface£¬Java±¾µØ½Ó¿Ú)¼¼Êõ´ó¼Ò¶¼²»Ä°Éú£¬Ëü¿ÉÒÔ°ïÖú½â¾öJava·ÃÎʵײãÓ²¼þµÄ¾ÖÏÞºÍÖ´ÐÐЧÂʵÄÌá¸ß¡£¹ØÓÚJNIµÄ¿ª·¢£¬´ó¶àÊý×ÊÁÏÌÖÂ۵ͼÊÇÈçºÎÓÃC/C++ÓïÑÔ¿ª·¢JNI£¬ÉõÖÁÓÚJDKÒ²ÌṩÁËÒ»¸öjavah¹¤¾ßÀ´×Ô¶¯Éú³ÉCÓïÑÔ³ÌÐò¿ò¼Ü¡£µ«ÊÇ£¬¶ÔÓÚ¹ã´óµÄDelphi³ÌÐòÔ±À´Ëµ£¬ÄѵÀ¾Í²»ÄÜÓÃ×Ô¼ºÏ²°®µÄDelphiÓëJava»¥Í¨ÏûÏ¢ÁËÂð£¿
¡¡¡¡Í¨¹ý¶ÔjavahÉú³ÉµÄC³ÌÐò¿ò¼ÜºÍJDKÖеÄjni.hÎļþµÄ·ÖÎö£¬ÎÒÃÇ·¢ÏÖ£¬JavaÀûÓÃJNI·ÃÎʱ¾µØ´úÂëµÄ¹Ø¼üÔÚÓÚjni.hÖж¨ÒåµÄJNINativeInterface_Õâ¸ö½á¹¹(Struct)£¬Èç¹ûÓÃDelhpiÓïÑÔ¸ÄдËüµÄ¶¨Ò壬Ӧ¸ÃÒ²¿ÉÒÔ¿ª·¢JNIµÄ±¾µØ´úÂë¡£ÐÒÔ˵ÄÊÇ£¬ÔÚÍøÉÏÓÐÏֳɵĴúÂë¿ÉÒÔ°ïÖúÄãÍê³ÉÕâ¸ö·±ÔӵŤ×÷£¬ÔÚhttp://delphi-jedi.orgÉÏÌṩÁËÒ»¸öjni.pasÎļþ£¬¾ÍÊÇÓÃDelphiÓïÑÔÖØÐ´µÄjni.h¡£ÎÒÃÇÖ»ÐèÔÚ×Ô¼ºµÄDelphi¹¤³ÌÖмÓÈëjni.pas¾Í¿ÉÒÔ·½±ãµØ¿ª·¢³ö»ùÓÚDelphiÓïÑÔµÄJNI±¾µØ´úÂë¡£
¡¡¡¡¡¡¡¡±¾ÎĽ«ÀûÓÃjni.pas£¬ÌÖÂÛÓÃDelphiÓïÑÔ¿ª·¢JNI±¾µØ´úÂëµÄ»ù±¾·½·¨¡£
ÏÈÀ´¿´Ò»¸ö¾µäµÄHelloWorldÀý×Ó¡£±àдÒÔÏÂJava´úÂ룺
class+HelloWorld
{
public+native+void+displayHelloWorld();+
static
{
System.loadLibrary("HelloWorldImpl");+
}
}
¡¡¡¡Õâ¶Î´úÂëÉùÃ÷ÁËÒ»¸ö±¾µØ·½·¨displayHelloWorld£¬ËüûÓвÎÊý£¬Ò²Ã»Óзµ»ØÖµ£¬µ«ÊÇÏ£ÍûËüÄÜÔÚÆÁÄ»ÉÏ´òÓ¡³ö“ÄúºÃ£¡Öйú¡£”×ÖÑù¡£Õâ¸öÈÎÎñÎÒÃÇ´òËã½»¸øÁ˱¾µØµÄDelphiÀ´ÊµÏÖ¡£Í¬Ê±£¬ÔÚÕâ¸öÀàµÄ¾²Ì¬ÓòÖУ¬ÓÃSystem.loadLibrary()·½·¨×°ÔØHelloWorldImpl.dll¡£×¢Ò⣬ÕâÀïÖ»ÐèÒª¸ø³öÎļþÃû¶ø²»ÐèÒª¸ø³öÀ©Õ¹Ãûdll¡£
¡¡¡¡Õâʱºò£¬Èç¹ûÔÚÎÒÃǵÄJava³ÌÐòÖÐʹÓÃHelloWorldÀàµÄdisplayHelloWorld·½·¨£¬ÏµÍ³½«Å׳öÒ»¸öjava.lang.UnsatisfiedLinkErrorµÄ´íÎó£¬ÒòΪÎÒÃÇ»¹Ã»ÓÐΪËüʵÏÖ±¾µØ´úÂë¡£
¡¡¡¡ÏÂÃæÔÙ¿´Ò»ÏÂÔÚDelphiÖеı¾µØ´úÂëµÄʵÏÖ¡£Ð½¨Ò»¸öDLL¹¤³Ì£¬¹¤³ÌÃûΪHelloWorldImpl£¬ÊäÈëÒÔÏ´úÂ룺
Uses
JNI;+
procedure+Java_HelloWorld_displayHelloWorld(PEnv:+PJNIEnv;+Obj:+JObject);+stdcall;+
begin
Writeln('ÄúºÃ£¡Öйú¡£');+
end;+
exports
Java_HelloWorld_DisplayHelloWorld;+
end.
¡¡¡¡Õâ¶Î´úÂëÊ×Ïȵ¼Èëjni.pasµ¥Ôª¡£È»ºóʵÏÖÁËÒ»¸ö½ÐJava_HelloWorld_displayHelloWorldµÄ¹ý³Ì£¬Õâ¸ö¹ý³ÌµÄÃüÃû
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
¡¡ÒÔ϶ÔBIG-ENDIAN¡¢LITTLE-ENDIANµÄ½âÊÍÕýºÃŪ·´ÁË£¡£¡£¡£¡
¡¡¡¡BIG-ENDIAN£¨´ó×Ö½ÚÐò¡¢¸ß×Ö½ÚÐò£©
¡¡¡¡LITTLE-ENDIAN£¨Ð¡×Ö½ÚÐò¡¢µÍ×Ö½ÚÐò£©
¡¡¡¡Ö÷»ú×Ö½ÚÐò
¡¡¡¡ÍøÂç×Ö½Ú˳Ðò
¡¡¡¡JAVA×Ö½ÚÐò
¡¡¡¡1£®BIG-ENDIAN¡¢LITTLE-ENDIAN¸ú¶à×Ö½ÚÀàÐ͵ÄÊý¾ÝÓйصıÈÈçint,short,longÐÍ£¬¶ø¶Ôµ¥×Ö½ÚÊý¾ÝbyteȴûÓÐÓ°Ïì¡£BIG- ......
JavaÓïÑÔ¶¨ÒåÁËpublic¡¢protected¡¢private¡¢abstract¡¢staticºÍfinalÕâ6ÖÖ³£ÓÃÐÞÊδÊÍ⻹¶¨ÒåÁË5¸ö²»Ì«³£ÓõÄÐÞÊδʣ¬ÏÂÃæÊǶÔÕâ11¸öJavaÐÞÊδʵĽéÉÜ£º
1.public
ʹÓöÔÏó£ºÀà¡¢½Ó¿Ú¡¢³ÉÔ±
½éÉÜ£ºÎÞÂÛËüËù´¦Ôڵİü¶¨ÒåÔÚÄÄ£¬¸ÃÀࣨ½Ó¿Ú¡¢³ÉÔ±£©¶¼ÊǿɷÃÎʵÄ
2.private
ʹÓöÔÏ󣺳ÉÔ±
½éÉÜ£º³ÉÔ ......
Java Network Launching Protocol (JNLP£¬javaÍøÂç¼ÓÔØÐÒé)¡£
jnlpÊÇʲô£¿ÊÇjavaÌṩµÄÒ»ÖÖÈÃÄã¿ÉÒÔͨ¹ýä¯ÀÀÆ÷Ö±½ÓÖ´ÐÐjavaÓ¦ÓóÌÐòµÄ;¾¶£¬ËüʹÄã¿ÉÒÔÖ±½Óͨ¹ýÒ»¸öÍøÒ³ÉϵÄurlÁ¬½Ó´ò¿ªÒ»¸öjavaÓ¦ÓóÌÐò£®ºÃ´¦¾Í²»ÓÃ˵ÁË£¬Èç¹ûÄãµÄjavaÓ¦ÓóÌÐòÒÔjnlp µÄ·½Ê½·¢²¼£¬Èç¹û°æ±¾Éý¼¶ºó£¬²»ÐèÒªÔÙÏòËùÓÐÓû§·¢²¼°æ±¾£¬Ö»ÐèÒª¸ü ......
Java ÓïÑÔµÄCalendar(ÈÕÀú),Date(ÈÕÆÚ), ºÍDateFormat(ÈÕÆÚ¸ñʽ)×é³ÉÁËJava±ê×¼µÄÒ»¸ö»ù±¾µ«ÊǷdz£ÖØÒªµÄ²¿·Ö. ÈÕÆÚÊÇÉÌÒµÂß¼¼ÆËãÒ»¸ö¹Ø¼üµÄ²¿·Ö. ËùÓеĿª·¢Õß¶¼Ó¦¸ÃÄܹ»¼ÆËãδÀ´µÄÈÕÆÚ, ¶¨ÖÆÈÕÆÚµÄÏÔʾ¸ñʽ, ²¢½«Îı¾Êý¾Ý½âÎö³ÉÈÕÆÚ¶ÔÏó. ÎÒÃÇдÁËÁ½ÆªÎÄÕÂ, ÕâÊǵÚһƪ, Î ......