JavaÖÐNative¹Ø¼ü×Ö
Java²»ÊÇÍêÃÀµÄ£¬JavaµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Í⣬JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã£¨ÈçϵͳӲ¼þµÈ)£¬Îª´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£
¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
£±¡¢ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻
£²¡¢ÓÃjavah²úÉúÒ»¸ö.hÎļþ£»
£³¡¢Ð´Ò»¸ö.cppÎļþʵÏÖnativeµ¼³ö·½·¨£¬ÆäÖÐÐèÒª°üº¬µÚ¶þ²½²úÉúµÄ.hÎļþ£¨×¢ÒâÆäÖÐÓÖ°üº¬ÁËJDK´øµÄjni.hÎļþ£©£»
£´¡¢½«µÚÈý²½µÄ.cppÎļþ±àÒë³É¶¯Ì¬Á´½Ó¿âÎļþ£»
£µ¡¢ÔÚJavaÖÐÓÃSystem.loadLibrary()·½·¨¼ÓÔØµÚËIJ½²úÉúµÄ¶¯Ì¬Á´½Ó¿âÎļþ£¬Õâ¸önative()·½·¨¾Í¿ÉÒÔÔÚJavaÖб»·ÃÎÊÁË¡£
JAVA±¾µØ·½·¨ÊÊÓõÄÇé¿ö
1.ΪÁËʹÓõײãµÄÖ÷»úƽ̨µÄij¸öÌØÐÔ£¬¶øÕâ¸öÌØÐÔ²»ÄÜͨ¹ýJAVA API·ÃÎÊ
2.ΪÁË·ÃÎÊÒ»¸öÀϵÄϵͳ»òÕßʹÓÃÒ»¸öÒÑÓеĿ⣬¶øÕâ¸öϵͳ»òÕâ¸ö¿â²»ÊÇÓÃJAVA±àдµÄ
3.ΪÁ˼ӿì³ÌÐòµÄÐÔÄÜ£¬¶ø½«Ò»¶Îʱ¼äÃô¸ÐµÄ´úÂë×÷Ϊ±¾µØ·½·¨ÊµÏÖ¡£
Ê×ÏÈдºÃJAVAÎļþ
package com.hode.hodework.modelupdate;
public class CheckFile
{
public native void displayHelloWorld();
static
{
System.loadLibrary("test");
}
public static void main(String[] args) {
new CheckFile().displayHelloWorld();
}
}
È»ºó¸ù¾ÝдºÃµÄÎļþ±àÒë³ÉCLASSÎļþ
È»ºóÔÚclasses»òbinÖ®ÀàµÄclass¸ùĿ¼ÏÂÖ´ÐÐjavah -jni com.hode.hodework.modelupdate.CheckFile£¬
¾Í»áÔÚ¸ùĿ¼Ïµõ½Ò»¸öcom_hode_hodework_modelupdate_CheckFile.hµÄÎļþ
È»ºó¸ù¾ÝÍ·ÎļþµÄÄÚÈݱàдcom_hode_hodework_modelupdate_CheckFile.cÎļþ
££i nclude "CheckFile.h"
££i nclude
££i nclude
JNIEXPORT void JNICALL Java_com_hode_hodework_modelupdate_CheckFile_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
Ö®ºó±àÒëÉú³ÉDLLÎļþÈç“test.dll”£¬Ãû³ÆÓëSystem.loadLibrary("test")ÖеÄÃû³ÆÒ»ÖÂ
vcµÄ±àÒë·½·¨£ºcl -I%java_home%\include -I%java_home%\include\win32 -LD com_hode_hodework_modelupdate_CheckFile.c -Fetest.dll
×îºóÔÚÔËÐÐʱ¼Ó²ÎÊý-Djava.library.path=[dll´æ·ÅµÄ·¾¶]
Ò». ʲôÊÇNative Method
¼òµ¥µØ½²£¬Ò»¸öNative Method¾ÍÊÇÒ»¸öjavaµ÷Ó÷Çjava´úÂëµÄ½Ó¿Ú¡£Ò»¸öNative MethodÊÇÕâÑùÒ»¸öjavaµÄ·½·¨£º¸Ã·½·¨µÄʵÏÖÓÉ·ÇjavaÓïÑÔʵÏÖ£¬±ÈÈçC¡£Õâ¸öÌØÕ÷²¢·ÇjavaËùÌØÓУ¬ºÜ¶àÆäËüµÄ±à³ÌÓ
Ïà¹ØÎĵµ£º
ÃüÃû¹æ·¶
ÏîÄ¿Ãû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
°üÃû£ºÈ«²¿×ÖĸСдÇÒΨһ£¬Í¨³£Îª¹«Ë¾ÓòÃûµÄµ¹Ðò
Ô´ÎļþÃû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
·½·¨Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд£¬Ò»°ãӦΪ¶¯´Ê
³ÉÔ±±äÁ¿Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
³ÉÔ±³£Á¿Ãû£ºËùÓе¥ ......
ºÜÔç֮ǰд¹ýÀûÓ÷ºÐͺͷ´Éä»úÖÆ³éÏóDAO £¬¶ÔÆäÖлñÈ¡×ÓÀà·ºÐ͵ÄclassÒ»Ö±²»ÊǺÜÀí½â¡£¹Ø¼üµÄµØ·½ÊÇHibernateBaseDaoµÄ¹¹Ôì·½·¨ÖеÄ
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
entityClass = (Class)params[0] ......
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import javax.crypto.Cipher;
// ¹«Ô¿¼ÓÃÜ£¬Ë½Ô¿½âÃÜʾÀý³ÌÐò
public class A {
& ......
ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ¹²ÓÐÈý´óÌØÐÔ£º·â×°¡¢¼Ì³Ð¡¢¶à̬£»
ÕâÈý´óÌØÐÔÖ®¼äÏ໥¹ØÁª£¬ÆäÖзâ×°ÐÔÊÇÃæÏò¶ÔÏóµÄ»ù´¡£¬¼Ì³ÐÐÔÊÇÈí¼þÖØÓõĹؼü¡£¶ø¶à̬ÐÔÔò±ØÐë´æÔÚÓڼ̳еĻ·¾³Ö®ÖУ¬ÊǶÔÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄ²¹³ä¡£
·â×°£»
Java5.0ÐÂÌØÐÔ£»»ù±¾Êý¾ÝÀàÐÍà·â×°Àà ·âÏ䣻 ·â×°Ààà»ù±¾Êý¾ÝÀàÐÍ ²ðÏ䣻
package review;
......
1¡¢ ÈÏʶThreadºÍRunnable
JavaÖÐʵÏÖ¶àÏß³ÌÓÐÁ½ÖÖ;¾¶£º¼Ì³ÐThreadÀà»òÕßʵÏÖRunnable½Ó¿Ú¡£RunnableÊǽӿڣ¬½¨ÒéÓýӿڵķ½Ê½Éú³ÉỊ̈߳¬ÒòΪ½Ó¿Ú¿ÉÒÔʵÏÖ¶à¼Ì³Ð£¬¿öÇÒRunnableÖ»ÓÐÒ»¸örun·½·¨£¬ºÜÊʺϼ̳С£ÔÚʹÓÃThreadµÄʱºòÖ»Ðè¼Ì³ÐThread£¬²¢ÇÒnewÒ»¸öʵÀý³öÀ´£¬µ÷ÓÃstart()·½·¨¼´¿ÉÒÔÆô¶¯Ò»¸öÏ̡߳£
Thread Test = ......