ͨ¹ýJNI ʵÏÖ javaÓëC++Ö®¼äµÄÐÅÏ¢´«µÝ
¶¨ÒåÒ»¸önative ·½·¨£º
package ext;
import java.util.Hashtable;
public class TestJNI
{
static
{
System.loadLibrary("dllfile");
}
public TestJNI()
{
Hashtable htable = new Hashtable();
htable.put(1,2);
}
public native Hashtable getNameList();
public static void main(String[] arg)
{
TestJNI tstJNI= new TestJNI();
Hashtable htable= tstJNI.getNameList();
System.out.println(htable.size());
}
}
ͨ¹ý javah Éú³É Í·Îļþ ext_TestJNI.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class ext_TestJNI */
#ifndef _Included_ext_TestJNI
#define _Included_ext_TestJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: ext_TestJNI
* Method: getNameList
* Signature: ()Ljava/util/Hashtable;
*/
JNIEXPORT jobject JNICALL Java_ext_TestJNI_getNameList
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
ÔÚc++´´½¨Ò»¸ödynamic dllÏîÄ¿£¬²¢ÔÚ StdAfx.h ÖÐ include Í·Îļþ ext_TestJNI.h
StdAfx.h ´úÂ룺
#if !defined(AFX_STDAFX_H__FAD3F2E4_D6E1_4011_9791_2256C4B0BDE6__INCLUDED_)
#define AFX_STDAFX_H__FAD3F2E4_D6E1_4011_9791_2256C4B0BDE6__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include "ext_TestJNI.h"
ÔÚ CPPÎļþÖж¨Òå ·½·¨ÊµÏÖ£º
CPP´úÂ룺
#include "stdAfx.h&
Ïà¹ØÎĵµ£º
1.¹¹Ôì·½·¨£ºÊÇÖ¸·½·¨ÃûÓëÀàÃûÏàͬµÄ·½·¨£¬°üÀ¨“×Ô¶¨Òå¹¹Ôì·½·¨”ºÍ“ĬÈϵĹ¹Ôì·½·¨”
ÔÚ´´½¨¶ÔÏóʱ Èç¹ûÀàÖÐÒѾ×Ô¶¨ÒåÁ˹¹Ôì·½·¨ ÄÇô±ØÐëʹÓøù¹Ôì·½·¨À´¹¹Ôì¶ÔÏó£»Èç¹ûÀ ......
ÎÊÌâÃèÊö£ºÒ»¸öÅ©·òÑøÁËһͷţ£¬ÈýÄêºó£¬ÕâͷţÿÄê»áÉú³ö1Í·Å££¬Éú³öÀ´µÄÅ£ÈýÄêºó£¬ÓÖ¿ÉÒÔÿÄêÉú³öһͷţ……ÎÊÅ©·ò10ÄêºóÓжàÉÙÍ·Å£?nÄêÄØ£¿£¨ÓÃJAVAʵÏÖ£©
ÎÊÌâ½âÎö£º
1£©ÔÚÕâ¸öÎÊÌâÖУ¬Òª×¢ÒâÿͷţÉú²úµÄʱ¼ä£º
µÚһͷţÈýÄêºó²Å»áÉú³öһͷеÄÅ££¨×¢ÒâÊÇÈýÄêºó£¬¶ø²»ÊǵÚÈý ......
ÏÖÔÚÒѾ¿ªÊ¼Ñ§Ï°javaÒ»¸öÔÂ×óÓÒµÄʱ¼äÁË¡£ÒÔǰ¶ÔjavaÓÐһЩ»ù±¾µÄÁ˽⣬ ÔÚǰ¼¸¸öÔµÄʱ¼äµ±ÖУ¬Ñ§Ï°ÁË.netµÄ¼¼Êõ£¬¶ÔÃæÏò¶ÔÏóµÄÉè¼ÆÓÐÁ˸üÉîµÄÒ»¸öÈÏʶ£¬ÔÚÒ»¸öżȻµÄ¹¤×÷»ú»áÉÏ£¬½á½»ÁËÒ»¸öÅóÓÑ¡£ËûÎÊÎÒÏëÔÚÄÄÒ»·½Ïò·¢Õ¹£¬ÆäʵÎÒÒ²²»Çå³þ£¬Ëû˵Ҫ×Ô¼º¶¨ºÃÒ»¸öλ£¬È»ºóÕâÑùÕÕ׿ƻ®×ßÏÂÈ¥ ......