javaÖÐnative·½·¨
JAVA²»ÊÇÍêÃÀµÄ, JAVAµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Íâ, JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã(ÈçϵͳӲ¼þµÈ),Ϊ´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£ ¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
£±¡¢ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻
£²¡¢ÓÃjavah²úÉúÒ»¸ö.hÎļþ£»
£³¡¢Ð´Ò»¸ö.cppÎļþʵÏÖnativeµ¼³ö·½·¨£¬ÆäÖÐÐèÒª°üº¬µÚ¶þ²½²úÉúµÄ¡£hÎļþ£¨×¢ÒâÆäÖÐÓÖ°üº¬ÁËJDK´øµÄjni.hÎļþ£©£»
£´¡¢½«µÚÈý²½µÄ.cppÎļþ±àÒë³É¶¯Ì¬Á´½Ó¿âÎļþ£»
£µ¡¢ÔÚJavaÖÐÓÃSystem.loadLibrary()·½·¨¼ÓÔØµÚËIJ½²úÉúµÄ¶¯Ì¬Á´½Ó¿âÎļþ£¬Õâ¸önative()·½·¨¾Í¿ÉÒÔÔÚJavaÖб»·ÃÎÊÁË¡£
JAVA±¾µØ·½·¨ÊÊÓõÄÇé¿ö
1.ΪÁËʹÓõײãµÄÖ÷»úƽ̨µÄij¸öÌØÐÔ£¬¶øÕâ¸öÌØÐÔ²»ÄÜͨ¹ýJAVA API·ÃÎÊ
2.ΪÁË·ÃÎÊÒ»¸öÀϵÄϵͳ»òÕßʹÓÃÒ»¸öÒÑÓеĿ⣬¶øÕâ¸öϵͳ»òÕâ¸ö¿â²»ÊÇÓÃJAVA±àдµÄ
3.ΪÁ˼ӿì³ÌÐòµÄÐÔÄÜ£¬¶ø½«Ò»¶Îʱ¼äÃô¸ÐµÄ´úÂë×÷Ϊ±¾µØ·½·¨ÊµÏÖ¡£
Ê×ÏÈдºÃJAVAÎļþ
1. Ö±½Ó½«javaÎļþ·Åµ½ %java_home%\includeĿ¼ÏÂ
¡¡¡¡public class CheckFile
¡¡¡¡{
¡¡¡¡public native void displayHelloWorld();
¡¡¡¡static
¡¡¡¡{
¡¡¡¡System.loadLibrary("test");
¡¡¡¡}
¡¡¡¡public static void main(String[] args) {
¡¡¡¡new CheckFile().displayHelloWorld();
¡¡¡¡}
¡¡¡¡}
2. È»ºó¸ù¾ÝдºÃµÄÎļþ±àÒë³ÉCLASSÎļþ
3. È»ºóÔÚclassesĿ¼ÏÂÖ´ÐÐ javah -jni CheckFile, ¾Í»áÔÚ¸ÃĿ¼Ïµõ½Ò»¸öCheckFile.hµÄÎļþ
4. È»ºó¸ù¾ÝÍ·ÎļþµÄÄÚÈݱàдCheckFile.cppÎļþ
¡¡¡¡#include "CheckFile.h"
¡¡¡¡
¡¡¡¡JNIEXPORT void JNICALL Java_CheckFile_displayHelloWorld(JNIEnv *env, jobject obj)
¡¡¡¡{
¡¡¡¡printf("Hello world!\n");
¡¡¡¡return;
¡¡¡¡}
void main()
{
return;
}
5. Ö®ºó±àÒëÉú³ÉDLLÎļþÈç"test.dll", Ãû³ÆÓëSystem.loadLibrary("test")ÖеÄÃû³ÆÒ»ÖÂ
cl CheckFile.cpp -Fetest.dll
6. ÔËÐÐ:java CheckFile
Ïà¹ØÎĵµ£º
¿ª·¢»·¾³ eclipse3.2 £¨Ã»ÓÐÅäÖû·¾³ Çë²Î¿´ÉÏһƪÈÕÖ¾£©
н¨ÏîÄ¿£º
UserCover£¨Ãû³ÆËæ±ã£© ×ö¸ö¼òµ¥µÄ±¨µÀ²¢¼Ç¼µ÷ÓÃserverµÄusername
н¨°ü£ºcom.axis2.test
н¨½Ó¿Ú£º
package com.axis2.test;
public interface UserCover {
public void CoverName(String myname);
public String getUserList ......
Ị̈߳¨Thread£©·½Ã棺
1¡¢javaÖÐÓм¸ÖÖ·½·¨¿ÉÒÔʵÏÖÒ»¸öỊ̈߳¿ÓÃʲô¹Ø¼ü×ÖÐÞÊÎͬ²½·½·¨? stop()ºÍsuspend()·½·¨ÎªºÎ²»ÍƼöʹÓã¿
´ð£ºÓÐÁ½ÖÖʵÏÖ·½·¨£¬·Ö±ðÊǼ̳ÐThreadÀàÓëʵÏÖRunnable½Ó¿Ú
ÓÃsynchronized¹Ø¼ü×ÖÐÞÊÎͬ²½·½·¨
·´¶ÔʹÓÃstop()£¬ÊÇÒòΪËü²»°²È«¡£Ëü»á½â³ýÓÉÏ̻߳ñÈ¡µÄËùÓÐËø¶¨£¬ ......
×ªÔØ×Ô http://littlefermat.blog.163.com/blog/static/59771167200962810120843/
Enum×÷ΪSunÈ«ÐÂÒý½øµÄÒ»¸ö¹Ø¼ü×Ö£¬¿´ÆðÀ´ºÜÏóÊÇÌØÊâµÄclass, ËüÒ²¿ÉÒÔÓÐ×Ô¼ºµÄ±äÁ¿£¬¿ÉÒÔ¶¨Òå×Ô¼ºµÄ·½·¨£¬¿ÉÒÔʵÏÖÒ»¸ö»òÕß¶à¸ö½Ó¿Ú¡£µ±ÎÒÃÇÔÚÉùÃ÷Ò»¸öenumÀàÐÍʱ£¬ÎÒÃÇÓ¦¸Ã×¢Òâµ½enumÀàÐÍÓÐÈçϵÄÒ»Ð©ÌØÕ÷¡£
1£®Ëü²»ÄÜÓÐpublicµÄ¹¹Ôìº¯Ê ......
1 ±àÒëÃüÁî
¡¡¡¡javac [options] filename.java
¡¡¡¡options->
¡¡¡¡-classpath path ±àÒëʱÐèÒªµÄÀà·¾¶
¡¡¡¡-d directory É趨±àÒëÉú³ÉµÄ.classÎļþÊäÈëµ½ÄÄÒ»¸öĿ¼¡£
¡¡¡¡¹ØÓÚ-dС¼¼ÇÉ : Èç¹û.javaÎļþÖÐʹÓÃÁËpackageÓï¾ä, ÀýÈç package com.test.maths; ¼ÓÉÏ- d . Ñ¡Ïî»á°ïÖúÔÚµ±Ç°Ä¿ ......