JAVAµ÷DLL,.JNI¼¼Êõʵ¼ù
¼øÓÚÅÀ³æ¿ª·¢ÐèÒªÒ»¸öͼƬ½âÎö¹¦Äܵĺ¯Êý£¬µ½ÍøÂçÉϲéÕÒÁËһЩjni·½ÃæµÄÄÚÈÝ£¬²¢×öÁË×Ô¼ºµÄһЩÐ޸ģ¬¾ßÌåÈçÏ£º
Ä¿Ç°javaÓëdll½»»¥µÄ¼¼ÊõÖ÷ÒªÓÐ3ÖÖ£ºjni£¬jawinºÍjacob¡£Jni£¨Java Native Interface£©ÊÇsunÌṩµÄjavaÓëϵͳÖеÄÔÉú·½·¨½»»¥µÄ¼¼Êõ£¨ÔÚwindows\linuxϵͳÖУ¬ÊµÏÖjavaÓënative method»¥µ÷£©¡£Ä¿Ç°Ö»ÄÜÓÉc/c++ʵÏÖ¡£ºóÁ½¸ö¶¼ÊÇsourceforgeÉϵĿªÔ´ÏîÄ¿£¬Í¬Ê±Ò²¶¼ÊÇ»ùÓÚjni¼¼ÊõµÄwindowsϵͳÉϵÄÒ»¸öÓ¦Óÿ⡣Jacob£¨Java-Com Bridge£©ÌṩÁËjava³ÌÐòµ÷ÓÃmicrosoftµÄcom¶ÔÏóÖеķ½·¨µÄÄÜÁ¦¡£¶ø³ýÁËcom¶ÔÏóÍ⣬jawin£¨Java/Win32 integration project£©»¹¿ÉÒÔwin32-dll¶¯Ì¬Á´½Ó¿âÖеķ½·¨¡£¾Í¹¦ÄܶøÑÔ£ºjni >> jawin>jacob£¬Æä´óÖµĽṹÈçÏÂͼ£º
jni¼¼ÊõÌåϵ¹¦Äܽṹͼ
¾ÍÒ×ÓÃÐÔ¶øÑÔ£¬ÕýºÃÏà·´£ºjacob>jawin>>jni¡£
Jvm·â×°Á˸÷ÖÖ²Ù×÷ϵͳʵ¼ÊµÄ²îÒìÐÔµÄͬʱ£¬ÌṩÁËjni¼¼Êõ£¬Ê¹µÃ¿ª·¢Õß¿ÉÒÔͨ¹ýjava³ÌÐò£¨´úÂ룩µ÷Óõ½²Ù×÷ϵͳÏà¹ØµÄ¼¼ÊõʵÏֵĿ⺯Êý£¬´Ó¶øÓëÆäËû¼¼ÊõºÍϵͳ½»»¥£¬Ê¹ÓÃÆäËû¼¼ÊõʵÏÖµÄϵͳµÄ¹¦ÄÜ£»Í¬Ê±ÆäËû¼¼ÊõºÍϵͳҲ¿ÉÒÔͨ¹ýjniÌṩµÄÏàÓ¦ÔÉú½Ó¿Ú¿ªµ÷ÓÃjavaÓ¦ÓÃϵͳÄÚ²¿ÊµÏֵŦÄÜ¡£
ÔÚwindowsϵͳÉÏ£¬Ò»°ã¿ÉÖ´ÐеÄÓ¦ÓóÌÐò¶¼ÊÇ»ùÓÚnativeµÄPE½á¹¹£¬windowsÉϵÄjvmÒ²ÊÇ»ùÓÚnative½á¹¹ÊµÏֵġ£JavaÓ¦ÓÃÌåϵ¶¼Êǹ¹½¨ÓÚjvmÖ®ÉÏ¡£
WindowsϵͳÉϵÄjavaÌåϵ
Jni¶ÔÓÚÓ¦Óñ¾ÉíÀ´Ëµ£¬¿ÉÒÔ¿´×öÒ»¸ö´úÀíģʽ¡£¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ£¬ÐèҪʹÓÃc/c++À´ÊµÏÖÒ»¸ö´úÀí³ÌÐò£¨jni³ÌÐò£©À´Êµ¼Ê²Ù×÷Ä¿±êÔÉúº¯Êý£¬java³ÌÐòÖÐÔòÊÇjvmͨ¹ý¼ÓÔز¢µ÷ÓôËjni³ÌÐòÀ´¼ä½ÓµØµ÷ÓÃÄ¿±êÔÉúº¯Êý¡£
Jniµ÷Óùý³ÌʾÒâͼ
l Jni³ÌÐò¿ª·¢µÄÒ»°ã²Ù×÷²½ÖèÈçÏ£º
1. ±àдjavaÖеĵ÷ÓÃÀ࣬²¢ÓÃjavac °üÃû.*.java ÃüÁî µÃµ½¸Ãµ÷ÓÃÀàµÄclassÎļþ
2. ÓÃjavah °üÃû.* Éú³Éc/c++ÔÉúº¯ÊýµÄÍ·Îļþ
3. c/c++Öе÷ÓÃÐèÒªµÄÆäËûº¯Êý¹¦ÄÜ£¬ÊµÏÖÔÉúº¯Êý(ÔÔòÉÏ¿ÉÒÔµ÷ÓÃÈκÎ×ÊÔ´)
4. ½«ÏîÄ¿ÒÀÀµµÄËùÓÐÔÉú¿âºÍ×ÊÔ´¼ÓÈëµ½javaÏîÄ¿µÄjava.library.path
5. Éú³Éjavaµ÷ÓÃÀà¶ÔÓ¦µÄdll¿â
6. ·¢²¼javaÓ¦ÓúÍdll¿â
l
Ïà¹ØÎĵµ£º
µÚÒ»²½£º²é¿´Linux×Ô´øµÄJDKÊÇ·ñÒÑ°²×° £¨Ð¶ÔØcentOSÒÑ°²×°µÄ1.4£©
<1># rpm -qa|grep jdk ← ²é¿´jdkµÄÐÅÏ¢»òÖ±½ÓÖ´ÐÐ
»ò
# rpm -q jdk
»ò
# java -version
<2># rpm -qa | grep gcj ← È·ÈÏgcjµÄ°æ±¾ºÅ
<3># yum -y remove java-1.4.2-gcj-compat ← жÔØgcj
µÚ¶þ²½£º°²×°JDK
< ......
¹ØÓÚflex´¦Àíjava ʵÌåbean£¬ÎÒÒ²²éÁ˺öà×ÊÁÏ£¬ÏÖÔÚÖÕÓڸ㶨£¬Ð´Ò»¸ö¼òµ¥µÄÀý×Ó£¬·ÖÏí¸ø´ó¼Ò
¸ßÊ־Ͳ»Óÿ´ÁË
/*studentʵÌåÀà=java*/
public class Student implements java.io.Serializable{
private String sNo;
private String sName;
get..
set..
}
/*flex asÀà Student.as*/
packa ......
Á½¸ötomcat Java¶¨Ê±ÈÎÎñµÄÀý×Ó
ÀýÒ»£º
±¾ÀýÒÀ¾ÝJava×ÔÉíÌṩµÄ½Ó¿ÚʵÏÖ£¬Í¨¹ý¼àÌýÆ÷£¨Listener£©ºÍ¶¨Ê±Æ÷£¨Timer£©¶¨Ê±Ö´ÐÐij¸öÈÎÎñ£¨Task£©¡£
רҵµÄ¿ªÔ´¹¤¾ß¿É²Î¿¼Quartz£ºhttp://www.opensymphony.com/quartz/
MyListener£º
import
java.util.Timer;
import
javax.servlet.ServletContextEvent;
i ......
ÉùÃ÷£º
ÒÔϵÄÀý×Ó²»Ò»¶¨ÕýÈ·£¬Ö»ÊÇΪÁËÑÝʾ´ó¸ÅµÄÁ÷³Ì¡£
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
È»ºóÄØ£¬ÔÚjavaÀïµ÷ÓÃʱ¾ÍÓÃÏÂÃæµÄ´ ......
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] – O’ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] – ¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ – ÿÖܶ¼ÓÐÐÂÎÄÕ·¢±í.
4.[http ......