Javaͨ¹ýJNIµ÷ÓÃdllÎļþ
¹ÇÍ·µÄ³ÌÐòÊÇJAVAдµÄ£¬ÕÔ¹¤µÄAI¿âÊÇÒ»¸ölib£¬ÄÇôǿ´ó²»ÓÃÌ«¿ÉϧÁË£¬ÈÝÎÒÏëÏë......
¼òµ¥À´Ëµ£º
0-Java ½¨Á¢ÐèÇóº¯ÊýÄ£°å
1-ʹÓà javah xxx.class ¹¤¾ßÉú³É.hÎļþ
2-°Ñjni.h¡¢jni_md.hºÍ¸Õ²ÅÉú³ÉµÄ.hÎļþ·Åµ½VS½¨Á¢µÄdll¿ÕÏîÄ¿Àï
3-Éú³É¿ÉÒÔµ÷ÓõÄdll
´ó¹¦¸æ³É
Ïêϸµã£º
ÀýÈçÄãÒªÓÃdll ʵÏÖÒ»¸öMax()º¯ÊýµÄ¹¦ÄÜ£¬ÏȰÑÕâ¸öÎļþ±àÒë³ÉclassÎļþ
È»ºóÓà javah Éú³É.h Îļþ
public class TestNative {
private native static int Max(int a, int b);
static {
System.loadLibrary("VCdll");
}
public static void main(String[] args) {
System.out.println(Max(4, 5));
}
}
visual Studio À
0-н¨->Win32->Win32ÏîÄ¿->Æð¸öÃûmydll->ÏÂÒ»²½->DLLºÍ¿ÕÏîÄ¿->Íê³É
1-°Ñjni.h¡¢jni_md.hºÍ¸Õ²ÅÉú³ÉµÄ.hÎļþ·Åµ½Í·ÎļþÀï
2-Ìí¼ÓÐÂÏîÄ¿->н¨c++Îļþ->cppÎļþÀïÒýÓøղÅÉú³ÉµÄ.hÎļþ->ʵÏÖÏà¹Ø·½·¨->
3-Éú³Édll
4-·ÅÔÚjavaÎļþĿ¼Ï£¬ok
Ïà¹ØÎĵµ£º
Eclipse²¢²»×Ô´øGUIµÄ¿ÉÊÓ»¯¿ª·¢¹¤¾ß£¬ÄÇôÈç¹ûÒªÔÚEclipse½øÐпÉÊÓ»¯µÄGUI¿ª·¢£¬¾ÍÐèÒªÒÀ¿¿µÚÈý·½µÄ²å¼þ¡£
1. Visual Editor
Eclipse¹Ù·½ÌṩÁËÒ»¸ö½Ð×öVisual Editor(VE)µÄ¿ªÔ´GUI²å¼þ£¬¹¦ÄÜ»¹ÊDZȽÏÇ¿¡£¿ÉÒÔ¸ù¾ÝÓû§µÄ½çÃæGUIÉè¼Æ£¬×Ô¶¯Éú³ÉÏàÓ¦µÄJAVA´úÂ롣ͬÑùÒ²¿ÉÒÔͨ¹ýÏàÓ¦µÄJAVA´úÂë£¬É ......
×î½üÐèҪдһ¶Î³ÌÐò£¬Íê³ÉÒÔÏµĹ¤×÷£¬ÓÃjava½«Êý¾ÝÒÔ¶þ½øÖƵÄÐÎʽдÈëÎļþÖУ¬È»ºóÓÃC¶Á³ö´Ë¶þ½øÖÆÎļþ¡£
¿ªÊ¼µÄʱºòûÓп¼ÂÇ»úÆ÷µÄ×Ö½ÚÐò£¬Ö±½Ó¸ã³ösegment fault.ÏëÁ˺ܾ㬲ÅÃ÷°×ÔÀ´ÊÇjavaºÍCµÄ×Ö½ÚÐòÊDz»Ò»ÑùµÄ¡£
javaÖеÄ×Ö½ÚÐòÊÇbig endianµÄ£¬ËüÊÇÓë»úÆ÷Î޹صġ£¶øcµÄ×Ö»úÐòÊÇ»úÆ÷Ïà¹ØµÄ£¬¶øµ±Ç°ÓõĻúÆ÷ÊÇx84 ......
Java±¾µØ½Ó¿Ú(Java Native Interface (JNI))ÔÊÐíÔËÐÐÔÚJavaÐéÄâ»ú(Java Virtual
Machine (JVM))ÉϵĴúÂëµ÷Óñ¾µØ³ÌÐòºÍÀà¿â£¬»òÕß±»ËüÃǵ÷Óã¬ÕâЩ³ÌÐòºÍÀà¿â¿ÉÒÔÊÇÆäËüÓïÑÔ±àдµÄ£¬±ÈÈçC¡¢C++»òÕß»ã±àÓïÑÔ¡£
¡¡¡¡µ±Ò»¸ö³ÌÐòÎÞ·¨ÍêȫʹÓÃJava±àдʱ£¬¿ª·¢Õß¿ÉÒÔͨ¹ýJNIÀ´±àд±¾µØ·½·¨£¬±ÈÈç±ê×¼JavaÀà¿â²¢²»Ö§³ÖµÄÒÀÀµÓÚÆ ......
¸ÅÊö£º±¾Ê¾ÀýʵÏÖ¶ÔÏó°´ÄêÁäÉýÐò ÈËÆøÉýÐòÅÅÐò¹¦ÄÜ ÐÕÃûÉýÐò ½µÐòÅÅÐò¹¦ÄÜ
package ch02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author YaoShiyou ʵÏÖ¶ÔÏóÅÅÐò
*
*/
public class Person {
......