java JNI ³¢ÊÔ
¡¡¡¡Ê×ÏÈÒýÓÃһƪÎÄÕ£¬½éÉÜÒ»¸ö¼òµ¥µÄJNIµÄµ÷ÓõĹý³Ì¡£¡¡¡¡JAVAÒÔÆä¿çƽ̨µÄÌØÐÔÉîÊÜÈËÃÇϲ°®£¬¶øÓÖÕýÓÉÓÚËüµÄ¿çƽ̨µÄÄ¿µÄ£¬Ê¹µÃËüºÍ±¾µØ»úÆ÷µÄ¸÷ÖÖÄÚ²¿ÁªÏµ±äµÃºÜÉÙ£¬Ô¼ÊøÁËËüµÄ¹¦ÄÜ¡£½â¾öJAVA¶Ô±¾µØ²Ù×÷µÄÒ»ÖÖ·½·¨¾ÍÊÇJNI¡£¡¡¡¡JAVAͨ¹ýJNIµ÷Óñ¾µØ·½·¨£¬¶ø±¾µØ·½·¨ÊÇÒÔ¿âÎļþµÄÐÎʽ´æ·ÅµÄ£¨ÔÚWINDOWSƽ̨ÉÏÊÇDLLÎļþÐÎʽ£¬ÔÚUNIX»úÆ÷ÉÏÊÇSOÎļþÐÎʽ£©¡£Í¨¹ýµ÷Óñ¾µØµÄ¿âÎļþµÄÄÚ²¿·½·¨£¬Ê¹JAVA¿ÉÒÔʵÏֺͱ¾µØ»úÆ÷µÄ½ôÃÜÁªÏµ£¬µ÷ÓÃϵͳ¼¶µÄ¸÷½Ó¿Ú·½·¨¡£ ¡¡¡¡¼òµ¥½éÉܼ°Ó¦ÓÃÈçÏ£º ¡¡¡¡Ò»¡¢JAVAÖÐËùÐèÒª×öµÄ¹¤×÷ ¡¡¡¡ÔÚJAVA³ÌÐòÖУ¬Ê×ÏÈÐèÒªÔÚÀàÖÐÉùÃ÷Ëùµ÷ÓõĿâÃû³Æ£¬ÈçÏ£º
static { System.loadLibrary(“goodluck”); }
¡¡¡¡ÔÚÕâÀ¿âµÄÀ©Õ¹Ãû×Ö¿ÉÒÔ²»ÓÃд³öÀ´£¬¾¿¾¹ÊÇDLL»¹ÊÇSO£¬ÓÉϵͳ×Ô¼ºÅжϡ£ ¡¡¡¡»¹Ðè¶Ô½«Òªµ÷Óõķ½·¨×ö±¾µØÉùÃ÷£¬¹Ø¼ü×ÖΪnative¡£ÇÒÖ»ÐèÒªÉùÃ÷£¬¶ø²»ÐèÒª¾ßÌåʵÏÖ¡£ÈçÏ£º
public native static void set(int i); public native static int get();
¡¡¡¡È»ºó±àÒë¸ÃJAVA³ÌÐòÎļþ£¬Éú³ÉCLASS£¬ÔÙÓÃJAVAHÃüÁJNI¾Í»áÉú³ÉC/C++µÄÍ·Îļþ¡£ ¡¡¡¡ÀýÈç³ÌÐòtestdll.java£¬ÄÚÈÝΪ£º
public class testdll { static { System.loadLibrary("goodluck"); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
¡¡¡¡ÓÃjavac testdll.java±àÒëËü£¬»áÉú³Étestdll.class¡£ ¡¡¡¡ÔÙÓÃjavah testdll£¬Ôò»áÔÚµ±Ç°Ä¿Â¼ÏÂÉú³Étestdll.hÎļþ£¬Õâ¸öÎļþÐèÒª±»C/C++³ÌÐòµ÷ÓÃÀ´Éú³ÉËùÐèµÄ¿âÎļþ¡£ ¡¡¡¡¶þ¡¢C/C++ÖÐËùÐèÒª×öµÄ¹¤×÷ ¡¡¡¡¶ÔÓÚÒÑÉú³ÉµÄ.hÍ·Îļþ£¬C/C++ËùÐèÒª×öµÄ£¬¾ÍÊǰÑËüµÄ¸÷¸ö·½·¨¾ßÌåµÄʵÏÖ¡£È»ºó±àÒëÁ¬½Ó³É¿âÎļþ¼´¿É¡£ÔÙ°Ñ¿âÎļþ¿½±´µ½JAVA³ÌÐòµÄ·¾¶ÏÂÃæ£¬¾Í¿ÉÒÔÓÃJAVAµ÷ÓÃC/C++ËùʵÏֵŦÄÜÁË¡£ ¡¡¡¡½ÓÉÏÀý×Ó¡£ÎÒÃÇÏÈ¿´Ò»ÏÂtestdll.hÎļþµÄÄÚÈÝ£º
/* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class testdll */ #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif /* * Class: testdll * Method: get * Signature: ()I */ JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass); /* * Class: testdll * Method: set * Signature: (I)V */ JNIEXPORT void J
Ïà¹ØÎĵµ£º
package com.infowarelab.java.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTester {
@SuppressWarnings("unchec ......
package day10;
import java.util.*;
public class MyLinkedList implements List
{
static class Node
{
public Object data;
public Node next;
public Node(Object data)
{
this.data=data;
}
}
private Node head;
public MyLinkedList()
{
head=new Node(0);
}
public void add(int ind ......
javaÖжÑÕ»(stack)ºÍ¶Ñ(heap)
Ò»¡¢¶ÑÕ»(stack)ºÍ¶Ñ(heap)£¿
£¨£±£©ÄÚ´æ·ÖÅäµÄ²ßÂÔ
¡¡¡¡°´ÕÕ±àÒëÔÀíµÄ¹Ûµã,³ÌÐòÔËÐÐʱµÄÄÚ´æ·ÖÅäÓÐÈýÖÖ²ßÂÔ,·Ö±ðÊǾ²Ì¬µÄ,ջʽµÄ,ºÍ¶ÑʽµÄ.
¡¡¾²Ì¬´æ´¢·ÖÅäÊÇÖ¸ÔÚ±àÒëʱ¾ÍÄÜÈ·¶¨Ã¿¸öÊý¾ÝÄ¿±êÔÚÔËÐÐʱ¿ÌµÄ´æ´¢¿Õ¼äÐèÇó,Òò¶øÔÚ±àÒëʱ¾Í¿ÉÒÔ¸øËûÃÇ·ÖÅä¹Ì¶¨µÄÄ ......
×î½üÏîÄ¿½ø¶È±È½Ï»ºÂý£¬³õ²½Ñо¿ÁËÒ»ÏÂOracleµÄ´æ´¢¹ý³Ì£¬½«´úÂëÌù³öÀ´¡£
Ê×ÏÈÏÈÌù³öÀ´OracleµÄ·ÖÒ³·ÖÒ³´æ´¢¹ý³Ì´úÂë°É¡£
1.ÕâÊǰüµÄ´úÂë
create or replace package DB_Oper is
-- Author : LIUBING
-- Created : 2009-10-28 15:01:30
-- Purpose : ²âÊÔOracleµ ......