JNI£¨Java Native Interface£©
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface (JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
ʹÓÃjavaÓë±¾µØÒѱàÒëµÄ´úÂë½»»¥£¬Í¨³£»áɥʧƽ̨¿ÉÒÆÖ²ÐÔ¡£µ«ÊÇ£¬ÓÐЩÇé¿öÏÂÕâÑù×öÊÇ¿ÉÒÔ½ÓÊܵģ¬ÉõÖÁÊDZØÐëµÄ£¬±ÈÈ磬ʹÓÃһЩ¾ÉµÄ¿â£¬ÓëÓ²¼þ¡¢²Ù×÷ϵͳ½øÐн»»¥£¬»òÕßΪÁËÌá¸ß³ÌÐòµÄÐÔÄÜ¡£JNI±ê×¼ÖÁÉÙ±£Ö¤±¾µØ´úÂëÄܹ¤×÷ÔÚÈκÎJava ÐéÄâ»úʵÏÖÏ¡£
Ò»¡¢JNI£¨Java Native Interface£©µÄÉè¼ÆÄ¿µÄ
·The standard Java class library may not support the platform-dependent features needed by your application.
·You may already have a library or application written in another programming language and you wish to make it accessible to Java applications
·You may want to implement a small portion of time-critical code in a lower-level programming language, such as assembly, and then have your Java application call these functions
¶þ¡¢JNI£¨Java Native Interface£©µÄÊéд²½Öè
·±àд´øÓÐnativeÉùÃ÷µÄ·½·¨µÄjavaÀà
·Ê¹ÓÃjavacÃüÁî±àÒëËù±àдµÄjavaÀà
·Ê¹ÓÃjavah ?jni javaÀàÃûÉú³ÉÀ©Õ¹ÃûΪhµÄÍ·Îļþ
·Ê¹ÓÃC/C++ʵÏÖ±¾µØ·½·¨
·½«C/C++±àдµÄÎļþÉú³É¶¯Ì¬Á¬½Ó¿â
·ok
1) ±àдjava³ÌÐò£º
ÕâÀïÒÔHelloWorldΪÀý¡£
´úÂë1£º
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
ÉùÃ÷native·½·¨£ºÈç¹ûÄãÏ뽫һ¸ö·½·¨×öΪһ¸ö±¾µØ·½·¨µÄ»°£¬ÄÇôÄã¾Í±ØÐëÉùÃ÷¸Ä·½·¨ÎªnativeµÄ£¬²¢ÇÒ²»ÄÜʵÏÖ¡£ÆäÖз½·¨µÄ²ÎÊýºÍ·µ»ØÖµÔÚºóÃæ½²Êö¡£
Load¶¯Ì¬¿â£ºSystem.loadLibrary("hello");¼ÓÔض¯Ì
Ïà¹ØÎĵµ£º
Ò»¸öJava´°¿Ú´ø°´¼ü¼ì²â£¨ÅÜJava¿ÉÊÓС³ÌÐòʱÓã©£¬沒¼ÓÐÞÊΣ¬°³×Ô¼ºÓõΡ£
package math;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
* »ù±¾µÄ»æͼ´°¿Ú£¬»Ø³µ¹Ø±Õ´°¿Ú
*/
@SuppressWarnings("s ......
4¡¢Ïú»Ù¶ÔÏó JavaÖв»ÐèÒª³ÌÐòÔ±×Ô¼ºÈ¥Ïú»Ù¶ÔÏó£¬ÕâÊÇΪʲôÄØ£¿ ÔÚC++ÖУ¬¶ÔÓÚ±äÁ¿¼°¶ÔÏóÉúÃüÖÜÆÚµÄά»¤Õ¼¾ÝÁË´óÁ¿µÄ±à³Ìʱ¼ä£¬ÒòΪ³ÌÐòÔ±ÐèÒªÖªµÀ±äÁ¿´æ»îµÄʱ¼ä£¬ÒÔ±ãÔÚÓÃÍêÖ®ºóÄÜ°ÑËüÏú»Ù£¬²»È»»áÕ¼ÂúÄÚ´æ¿Õ¼ä£¬×èÈû³ÌÐò¡£Òò´ËJavaÔÚÉè¼Æʱ¶Å¾øÁËÕâÒ»ÎÊÌâ¡£ÄÇôJavaÊÇÔõô×öµÄÄØ£¬¿´ÏÂÃæµÄ½éÉÜ¡£ 4.1¡¢±äÁ¿×÷ÓÃÓò ×÷ÓÃÓ ......
package debug;import java.io.*;import java.lang.Thread;class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); }}class R implements Runnable{ private int x = 0; public void run(){ System.out.printl ......
¹Ø¼ü×Ö: javaÖÐjxlµ¼³öÊý¾Ýµ½excelµÄÀý×Ó
ÒªÍùxlsÎļþÀïÃæдÈëÊý¾ÝµÄʱºòÐèҪעÒâµÄÊǵÚһҪн¨Ò»¸öxlsÎļþ
OutputStream os=new FileOutputStream("c:\\excel2.xls" );
ÔÙ½¨ÍêÕâ¸öÎļþµÄʱºòÔÙ½¨Á¢¹¤×÷Îļþ
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(os));
Èç¹ûÕâ¸öÎļþÒѾ´æÔÚ,ÄÇà ......
2009Äê10ÔÂ25ÈÕ£¬µÃÒ»Êéµê200ÔªÂòÁËËı¾Êéj2se»ù´¡½Ì³Ì£¬j2eeÓ¦Óÿª·¢Ïê½â£¬javaÏîÄ¿¿ª·¢È«³Ìʵ¼£¬java web¿ª·¢ËÙѧ±¦µäÊ鿪ʼ
2010Äê2ÔÂ3ÈÕ£¬µÚÒ»Ì×»ùÓÚú¿ó°²È«¹ÜÀíµÄÈí¼þÄ£Ðͼ°Æ䲿·Ö´úÂë³ÉÐÍ
Èý¸öÔ£¬ÕâÊÇÒ»³¡Ø¬ÃΣ¬²»¹ýÕâÈý¸öÔ£¬ÓÖÊÇÒ»ÖÖ¾ªÏ²ºÍ¿ìÀÖ
´ÓÊý¾ÝÀàÐÍ£¬Óï·¨½á¹¹£¬jdk ¹ýÑ»·£¬´³Êý×飬¼¯ºÏ£¬µü´ú£¬¶ÓÁУ ......