Java»ù´¡ÖªÊ¶——JNIÈëÞµä
JNIÊÇJava Native InterfaceµÄËõд£¬Í¨¹ýʹÓÃnative·½·¨£¬Java¿ÉÒÔµ÷Óñ¾µØC/C++×Ó³ÌÐò¡£ÉùÃ÷Ò»¸ö±¾µØ×Ó³ÌÐòµÄ·½·¨ÊÇ£ºÔÚ·½·¨ÃûǰÌí¼ÓnativeÐÞÊΣ¬Èç
public native void myfun();
µ÷ÓøÃ×Ó³ÌÐòµÄ·½·¨Îª£º
static{
System.loadLibrary("myfun");
}
ÔÚWindowsÉÏ£¬ÉÏÃæµÄmyfun¼´Ö¸°üº¬ÓÃC/C++дµÄmyfun()µÄʵÌåµÄDLL——myfun.dll¡£ÏÂÃæÒÔNativeDemo³ÌÐòΪÀýÀ´ËµÃ÷ÔõÑùÔÚWindowsÏ£¨XP+VS2008+JDK1.6u17£©Ê¹ÓÃJNI¡£
1. ±àдԴ³ÌÐòNativeDemo.java
NativeDemo.javaÖÐÉùÃ÷ÁËÒ»¸ö±¾µØ×Ó³ÌÐòtest()£º
public native void test();
¸Ã×Ó³ÌÐò´ÓÖ÷³ÌÐò»ñµÃint±äÁ¿iµÄÖµ£¬¶ÔÆä¼Ó±¶£¬È»ºó·µ»Ø¸øÖ÷³ÌÐò¡£¾ßÌå´úÂëÈçÏ£º
// Using Native method
public class NativeDemo{
int i;
public static void main(String args[]){
NativeDemo ob=new NativeDemo();
ob.i=10;
System.out.println("This is ob.i before the native method: "+ob.i);
ob.test(); //call a native method
System.out.println("This is ob.i after the Native method: "+ob.i);
ob.test(); //call a native method
System.out.println("This is ob.i after the Native method: "+ob.i);
}
// declare native method
public native void test();
static{
// load DLL that contains static method
System.loadLibrary("NativeDemo");
}
}
2. ±àÒëNativeDemo.java
javac NativeDemo.java
µÃµ½NativeDemo.class
3. ʹÓÃjavah.exeÉú³ÉNativeDemo.h
javah -jni NativeDemo
javah.exeÔÚ%JAVA_HOME%\binÏ£¬Éú³ÉµÄNativeDemo.hÈçÏ£º
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NativeDemo */
#ifndef _I
Ïà¹ØÎĵµ£º
±¾ÎÄÕë¶Ôjdk6.0ÖÐjava.lang.ClassÀàµÄAPI½øÐÐÁ˼òµ¥µÄʵÀýÓ¦Óã¬Àý×Ó¼òµ¥Ò×¶®£¬±È½ÏÊʺÏÈëÃż¶ÔĶÁ¡£
ʵÀý¼ò½é£º
/*
*IncludeInnerClassÀàÖаüº¬ÁËÈýÖÖ·ÃÎÊ¿ØÖƵÄÄÚ²¿À࣬²¢ÇÒÒÔÕâÈý¸öÄÚ²¿ÀàµÄÒýÓöÔÏóºÍÒ»¸öÕûÐÍÊý×÷ΪÊôÐÔ£¬ÔÚÍⲿÀàµÄ·½·¨Öзֱðµ÷ÓÃÁË ÄÚ²¿ÀàµÄ·½·¨
*ÍⲿÀàÓÐÁ½¸ö¹¹Ôì·½·¨£¬ ......
1¡¢¼¯ºÏÆäʵ¿ÉÒÔ¿´³ÉΪÊý×éµÄÀ©Õ¹£¬ËüÓëÊý×éµÄ²»Í¬Ö®´¦ÔÚÓÚ:
¡¶1¡· Ò»¸öÊý×éÖ»ÔÊÐí´æ´¢Ò»ÖÖÀàÐ͵ÄÊý¾Ý£¬¶øÒ»¸ö¼¯ºÏ¿ÉÒÔ´æ´¢ÈÎÒ»ÖÖ¶ÔÏóÀàÐÍÊý¾Ý£»
¼òµ¥µÄ˵һ¸ö¼¯ºÏÀàËÆÒ»¸ö O ......
¡¡¡¡»¥ÁªÍøµÄáÈÆð£¬Ê¹µÃPC´Ó²úÒµÖÐÐÄÏò±ßÔµ¹ý¶É£¬¶øÀú¾20ÓàÄêµÄ·¢Õ¹£¬PCÊг¡Ò²Ç÷ÓÚ±¥ºÍ£¬´½Íö³Ýº®£¬Õâ½Ð¿¿PC³Ô·¹µÄ΢ÈíÈçºÎ²»¼±£¿ÎüÈ¡Á˵±Ä꿪·¢ä¯ÀÀÆ÷Èí¼þµÄ½Ìѵ£¬2000Äê6Ô£¬Î¢ÈíÆô¶¯.Net¼Æ»®£¬½ø¾üÍøÂç·þÎñÊг¡£¬±È¶û·¸Ç´Ä×ÔÐŵسƣº"ÊÀ½çÉÏËùÓÐÒ»Çж¼½«°üÀ¨ÔÚ»¥ÁªÍø·þÎñÖС£"
¡¡¡¡.NETµÄ˼ÏëÆäʵÊÇÀ´Ô ......
1¡¢ Ò»¸öÊýÈç¹ûÇ¡ºÃµÈÓÚÆäÒò×Ó£¨³ýÁ˱¾ÉíÒÔÍâµÄÔ¼ÊýÖ®ºÍ£©£¬¸ÃÊý¾Í³ÆÎª“ÍêÊý”¡£±àдһ¸ö Java Application ³ÌÐò£¬Çó³ö 1000 ÒÔÄÚµÄËùÓÐÍêÊý¡£
public class homework11
{
public static void main(String[] args)
//Êä³ö1000ÒÔÄÚµÄËùÓÐÍêÊý
{
int sum; ......
1¡¢ ´®²Ù×÷£ºÊ¹ÓÃ×Ö·û´®´æÖüÒ»¸öÓ¢Îľä×Ó“Java is an object oriented programming
language”¡£ÏÔʾ¸Ã¾ä×Ó£¬²¢Ëã³öÿ¸öµ¥´ÊµÄ×ÖĸÊýºÍƽ¾ù×ÖĸÊý£¬²¢°´µ¥´ÊÉýÐòÅÅÁÐÊä³ö£¨²»ÓÃÊý×飬ֻÓô®²Ù×÷£©
public class homework21 {
public static void main(String[] args) {
&nb ......