javaµ÷ÓÃdllÀý×Ó
×î¼Ñ´ð°¸
1. ±àд·¶ÀýÎĵµ
public class TestNative
{
private native static int Max(int a,int b);
public static void main(String[] args)
{
System.out.println(Max(4,5));
}
static
{
System.loadLibrary("VCdll");
}
}
ÆäÖÐ
LoadLibraryÖеÄDLLÎļþÃû³Æ¿ÉÒÔËæ±ã¶¨.Ö»Òª×öºÃµÄ¶¯Ì¬Á´½Ó¿â¸ÄÃû³ÉÕâ¸ö×Ö·û´®¾Í¿ÉÒÔÁË.¶ønativeº¯ÊýµÄÀ´Ô´¾ÍÊǸö¯Ì¬Á´½Ó¿â.
2. ×öºÃ¸Ã²½×¼±¸ÒÔºó,ÓÃjavac TestNative.javaÉú³ÉTestNative.class. ¼ìÑéÓï·¨.
3. Óï·¨¼ì²éͨ¹ýÒÔºó,ÓÃjavah TestNativeÉú³ÉTestNative.hµÄC++Í·Îļþ.
4. ÓÃVC++6.0´´½¨dllÎļþ:
<1>msdev->new->project->win32 Dynamic-Link Library
<2>Enter project name (e.g. VCdll)
<3>choose "An empty DLL project"->finish
<4>½«3Éú³ÉµÄTestNative.hºÍjdkϵÄjni.hºÍjni_md.h¼ÓÈëµ½¹¤³ÌÖÐÈ¥
<5>Create a c++ file, implements the native method. as follows:
//TestNative.cpp
#include "TestNative.h"
JNIEXPORT jint JNICALL Java_TestNative_Max
(JNIEnv * a, jclass b, jint x, jint y)
{
return x > y ? x : y;
}
±¸×¢:
A ÆäÖеÄjni.hͨ³£ÔÚ jdk\include\ ¿ÉÒÔÏÈ¿½±´µ½VC°²×°Ä¿Â¼ÏµÄincludeĿ¼ÏÂ.Ò»ÀÍÓÀÒÝ,ÒÔºó¿ÉÒÔ·½±ãʹÓÃJNI¼¼Êõ.
B È«²¿µÄÊý¾ÝÀàÐÍÐèÒª¿¼ÂÇJavaºÍVCµÄ½Ó¿ÚÎÊÌâ.ÓÃjint jstring µÈ.
C º¯ÊýÃû³ÆºÍ×Ô¶¯Éú³ÉµÄ.hÎļþÖй涨µÄÒ»ÖÂ.ÃüÃû¹æÔòÊÇ: Java_ʹÓÃÀà_·½·¨Ãû
6. È«±àÒëÒ»ÏÂVC++¹¤³Ì.
Èç¹ûûÓгö´í,Ôò´ËʱÉú³É¶¯Ì¬Á´½Ó¿â³É¹¦.
°Ñ¶¯Ì¬Á´½Ó¿âVCdll.dll¿½±´µ½TestNative.javaËùÔÚµÄĿ¼ÉÏ.
7.ÔËÐÐjava TestNative. OK :-)
Ïà¹ØÎĵµ£º
ÔںܶàJavaÓ¦ÓÃÖÐÐèÒªÔÚ³ÌÐòÖе÷ÓÃJava±àÒëÆ÷À´±àÒëºÍÔËÐС£µ«ÔÚÔçÆÚµÄ°æ±¾ÖУ¨Java SE5¼°ÒÔǰ°æ±¾£©ÖÐÖ»ÄÜͨ¹ýtools.jarÖеÄcom.sun.tools.javac°üÀ´µ÷ÓÃJava±àÒëÆ÷£¬µ«ÓÉÓÚtools.jar²»ÊDZê×¼µÄJava¿â£¬ÔÚʹÓÃʱ±ØÐëÒªÉèÖÃÕâ¸öjarµÄ·¾¶¡£¶øÔÚJava SE6ÖÐΪÎÒÃÇÌṩÁ˱ê×¼µÄ°üÀ´²Ù×÷Java±àÒëÆ÷£¬Õâ¾ÍÊÇjavax.tools°ü¡£Ê¹ÓÃÕ ......
Á½¸ötomcat Java¶¨Ê±ÈÎÎñµÄÀý×Ó
ÀýÒ»£º
±¾ÀýÒÀ¾ÝJava×ÔÉíÌṩµÄ½Ó¿ÚʵÏÖ£¬Í¨¹ý¼àÌýÆ÷£¨Listener£©ºÍ¶¨Ê±Æ÷£¨Timer£©¶¨Ê±Ö´ÐÐij¸öÈÎÎñ£¨Task£©¡£
רҵµÄ¿ªÔ´¹¤¾ß¿É²Î¿¼Quartz£ºhttp://www.opensymphony.com/quartz/
MyListener£º
import
java.util.Timer;
import
javax.servlet.ServletContextEvent;
i ......
java´ò°ü-exeÎļþ-×îÖÕÒÔsetupÐÎʽ·¢²¼µÄ½â¾öÖ®µÀ
java´ò°ü-exeÎļþ-×îÖÕÒÔsetupÐÎʽ·¢²¼µÄ½â¾öÖ®µÀ
Ê×ÏÈ£¬½«±àÒëºÃµÄ³ÌÐò´ò°ü³ÉjarÎļþ£¬È»ºó×ö³öexe£¬ÕâÑù´úÂë¾Í²»¿É¼ûÁË£»µ«ÊÇexeÎļþÔÚûÓа²×°jreµÄµçÄÔÉϲ»ÄÜÔËÐУ¬Èç¹ûÒªÇó¿Í»§ÔÙÈ¥°²×°jre ÉèÖû·¾³±äÁ¿ ¾Í²»ÑÅÁË¡£ÎÒÃÇÐèÒª½«jre´ò°ü¡£
Õ⼸²½²Ù×÷Í ......
1.ǰÑÔ£º
ÄãµÄ³ÌÐò×ÜÓÐÒ»Ìì»á±ÀÀ£µô£¬ÔÚ±ÀÀ£µôµÄʱºòÎÒÃÇÒªÖªµÀËüÔÚÄÄ£¬ÎªÁËʲô¶ø±ÀÀ£µô£¬Êý¾ÝµÄ±£´æ»òÕß¶ªÊ§Çé¿öÈçºÎµÈÎÊÌâ¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¼Ì³ÐÀàjava.lang.ThrowableµÄ×ÓÀࣺExceptionÀ´Éè¼ÆÎÒÃÇ×Ô¼ºµÄJavaÒì³£¡£ExceptionÀàÓÃÓÚÃèÊö³ÌÐòÄܹ»²¶»ñµÄÒì³££¬ÈçClassNotFoundException¡£Òª×¢ÒâµÄÊÇ×Ô¶¨ÒåÒì³£ÀàÖ®¼äÒ²¿ÉÒÔÓм ......
¹ØÓÚjavaµÄ¼¯ºÏÀà,ÒÔ¼°HashMapÖÐSetµÄÓ÷¨!
2005-10-22 14:47:43 Sat | ÔĶÁ£¨547£©´Î
package com.tiantian;
import java.util.*;
public class JAVAContainer {
public static void main(String[] args) throws Exception {
//&nbs ......