ÓÃ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.util.Date£¬È´×ÜÒ²ÕÒ²»µ½ºÏÊʵķ½·¨£¬ÎÞÄÎ֮ϣ¬ÇëÒ»¸ö¸ßÈ˰ïæ£¬ÀÏÁõ¸øÁËÒ»¾ä»°£ºÊ¹ÓÃCanlender¡£Ö®ºó£¬ÎÒ¾ÍʹÓÃCalender£¬Ò»Ó㬻¹ÕæºÃÓ㬾Íд³öÀ´£¬ºÍ´ó¼Ò¹²Í¬·ÖÏí£º
² ÎÒµÄÐèÇó
ÎÒÔÚ×÷Ò»¸öµ÷²éÎÊ¾í£¬ÏëÉ趨ÎʾíµÄÓÐЧÌìÊý£ºÔÚ·¢²¼Ö ......
±äÁ¿ÊÇJava ³ÌÐòµÄÒ»¸ö»ù±¾´æ´¢µ¥Ôª¡£±äÁ¿ÓÉÒ»¸ö±êʶ·û£¬ÀàÐͼ°Ò»¸ö¿ÉÑ¡³õʼֵµÄ×éºÏ¶¨Òå¡£´ËÍ⣬ËùÓеıäÁ¿¶¼ÓÐÒ»¸ö×÷ÓÃÓò£¬¶¨Òå±äÁ¿µÄ¿É¼ûÐÔ£¬Éú´æÆÚ¡£
¡¡¡¡ÉùÃ÷Ò»¸ö±äÁ¿
Ò»¡¢ ¾²Ì¬³õʼ»¯
¡¡¡¡ÔÚJava ÖУ¬ËùÓеıäÁ¿±ØÐëÏÈÉùÃ÷ÔÙʹÓ᣻ù±¾µÄ±äÁ¿ÉùÃ÷·½ ......
/*
ÌṩzipÎļþµÄ½âѹËõ½Ó¿Ú£º
AdapterZipFile£º
ÊäÈ룺zipFileName£¨zipÎļþµÄ¾ø¶Ô·¾¶£©£¬outputDirectory£¨zipÎļþ½âѹËõºóµÄ´æ·Å·¾¶£©
Êä³ö£º
˵Ã÷£º³õʼ»¯º¯Êý
unZipFile£º
ÊäÈ룺ÎÞ
Êä³ö£º
˵Ã÷£º½âѹËõzipÎļþ£¬½âѹËõ ......
Îļþ¶ÔÏóµÄÉú³ÉºÍÎļþµÄ´´½¨
/*
* ProcessFileName.java
*
* Created on 2006Äê8ÔÂ22ÈÕ, ÏÂÎç3:10
*
* Îļþ¶ÔÏóµÄÉú³ÉºÍÎļþµÄ´´½¨
*/
package study.iostudy;
import java.io.*;
public class GenerateFile
{
public static void main(String ......
public class FilePath {
public void Print() {
String a = this.getClass().getClassLoader().getResource(".").getPath();
String b = this.getClass().getResource("").getPath();
String c = this.getClass().getResource(" ").getPath();
&n ......