Java Native Interface ÈëÃÅʾÀý
¼øÓÚÍøÉÏËѵ½µÄ¶¼ÊÇ»ùÓÚjdk1.4»òÒÔǰ°æ±¾£¬¶øÇÒ±¾µØ¿âÓõÄÊÇCÓïÑÔ¡£¶øÏÖÔÚÊÇ»ùÓÚC++£¬ËùÒÔ¸üмǼÈçÏ£º
µÚÒ»²½£º´´½¨JavaÔ´ÂëÎļþ
public class Hello{
static{
System.loadLibrary("Hello");
}
public Hello(){
}
public native void sayHello(String strName);
public static void main(String[] args){
Hello hello = new Hello();
hello.sayHello("fuye");
}
}
µÚ¶þ²½£º±àÒë
javac Hello.java
µÚÈý²¿£ºÉú³ÉC++ÎļþÍ·
javah Hello
Hello.hÎļþÄÚÈÝÈçÏ£º
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Hello */
#ifndef _Included_Hello
#define _Included_Hello
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Hello
* Method: sayHello
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_Hello_sayHello
(JNIEnv *, jobject, jstring);
#ifdef __cplusplus
}
#endif
#endif
µÚËIJ½£ºÐ½¨C++ʵÏÖÎļþ
#include "Hello.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_Hello_sayHello(JNIEnv * env, jobject arg, jstring instring){
printf("This is my first jni program\n");
}
µÚÎå²½£º ±àÒ룬Á¬½Ó³É±¾µØ¿â
1¡¢Éú³ÉHello.o
g++ -I /usr/local/dev/java/jdk1.5.0_16/include/ -I /usr/local/dev/java/jdk1.5.0_16/include/linux/ -c Hello.cpp
2¡¢Éú³ÉlibHello.so.1.0
g++ -shared -W1,-soname,libHell
Ïà¹ØÎĵµ£º
¡¡JavaµÄClassLoader¾ÍÊÇÓÃÀ´¶¯Ì¬×°ÔØclassµÄ£¬ClassLoader¶ÔÒ»¸öclassÖ»»á×°ÔØÒ»´Î£¬JVMʹÓõÄClassLoaderÒ»¹²ÓÐ4ÖÖ£º
¡¡¡¡Æô¶¯Àà×°ÔØÆ÷£¬±ê×¼À©Õ¹Àà×°ÔØÆ÷£¬Àà·¾¶×°ÔØÆ÷ºÍÍøÂçÀà×°ÔØÆ÷¡£
¡¡¡¡Õâ4ÖÖClassLoaderµÄÓÅÏȼ¶ÒÀ´Î´Ó¸ßµ½µÍ£¬Ê¹ÓÃËùνµÄ“Ë«Ç×ίÅÉÄ£ÐÍ”¡£È·ÇеØËµ£¬¼ÙÈçÒ»¸öÍøÂçÀà×°ÔØÆ÷±»ÇëÇó×°ÔØÒ ......
×÷ΪJava³ÌÐòÔ±À´Ëµ£¬×îÍ´¿àµÄÊÂÇéιýÓÚ¿ÉÒÔÑ¡ÔñµÄ·¶Î§Ì«¹ã£¬¿ÉÒÔ¶ÁµÄÊéÌ«¶à£¬ÍùÍùÈÝÒ×ÎÞËùÊÊ´Ó¡£ÎÒÏë¾ÍÎÒ×Ô¼º¶Á¹ýµÄ¼¼ÊõÊé¼®ÖÐÌôÑ¡³öÀ´Ò»Ð©£¬°´ÕÕѧϰµÄÏȺó˳Ðò£¬ÍƼö¸ø´ó¼Ò£¬ÌرðÊÇÄÇЩÏë²»¶ÏÌá¸ß×Ô¼º¼¼ÊõˮƽµÄJava³ÌÐòÔ±ÃÇ¡£
¡¡¡¡Ò»¡¢Java±à³ÌÈëÃÅÀà
¡¡¡¡¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄJava³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé ......
Ò»¡¢ÀûÓÃjdk web·þÎñapiʵÏÖ£¬ÕâÀïʹÓûùÓÚ SOAP message µÄ Web ·þÎñ
¡¡¡¡1.Ê×ÏȽ¨Á¢Ò»¸öWeb services EndPoint£º
¡¡¡¡Java´úÂë
¡¡¡¡package Hello;
¡¡¡¡import javax.jws.WebService;
¡¡¡¡import javax.jws.WebMethod;
¡¡¡¡import javax.xml.ws.Endpoint;
¡¡¡¡@WebService
¡¡¡¡public class Hello {
¡¡¡¡@WebMet ......
´«ÖDz¥¿ÍJAVAÅàѵOAÏîÄ¿ ÉóÅúÁ÷תģ¿é¶þ
ËäÈ»ÕâÁ½ÌìѧϰµÄ֪ʶµãÊÇspring£¬µ«ÊÇÎҵĹ۵ã¾ÍÊÇѧһ¸ö֪ʶµã¾ÍҪѧͨ°É£¬ÒòΪÈç¹ûÇ°ÃæµÄ֪ʶ¶¼Ã»ÓÐѧ»á£¬ÓÖ¼±×ÅȥѧϰÐµĶ«Î÷£¬Ö»»áÇ·ÏÂÔ½À´Ô½¶àµÄ¶«Î÷£¡ÕâÒ²ÊÇÎÒѧϰµÄÖ÷ÕÅ¡£ËµÊµÔڵģ¬ÉÏÒ»¸öÏîÄ¿OAÏîÄ¿µÄ¶¼Ã»ÓÐÀí½âµÃ͸³¹£¬¾Í¼±×Åȥѧ£¬Ö»»áÔ½À´Ô½´óµÄѹÁ¦£¬Ô½À´Ô½Ã» ......
Ϊʲô˵ÂÒÂëÊÇÖйú³ÌÐòÔ±ÎÞ·¨±ÜÃâµÄ»°ÌâÄØ£¿Õâ¸öÊ×ÏÈÒª´Ó±àÂë»úÖÆÉÏ˵Æð£¬´ó¼Ò¶¼ÊÇÖÐÎĺÍÓ¢ÎĵıàÂë¸ñʽ²»ÊÇÒ»Ñù£¬½âÂëÒ²ÊDz»Ò»ÑùµÄ£¡Èç¹ûÖйúµÄ³ÌÐòÔ±²»»áÓöµ½ÂÒÂ룬ÄÇôֻÓÐʹÓúºÓï±à³Ì¡£ººÓï±à³ÌÊÇÔõô»ØÊÂÎÒÒ²²»´óÇå³þ£¬Ó¦¸ÃÊÇǰÄê°É£¬ÎÒÒ»ÅóÓѸøÎÒ½éÉܺºÓï±à³Ì£¬Ôõô²»´í²»´í£¿µ±Ê±ÒòΪѧϰæûȥ¹Ø×¢Õâ¸ö£¬µÈÎÒÏÐ ......