ÓïÑÔ»ì±àÖ®javaµ÷ÓÃc dll jni¼¼ÊõСÊÔ
¸Õ´ÓÍøÉÏ¿´µ½cºÍjava»ì±àµÄÎÄÕ£¬¾Íؽ²»¿É´ýµÄ³¢ÊÔÁËһϡ£ºÇºÇ£¬Ð§¹û»¹ÊǺܺõġ£ÏÂÃæ½«×Ô¼º³É¹ûÕ³Ìù³öÀ´
£¨×ªÔØÓÚhttp://www.zxbc.cn/html/20070518/19986.html£©¡£ÊµÑéÖ®ºó¿ÉÒÔͨ¹ý¡£
1javaÖе÷ÓÃcÓïÑÔ
Ê×ÏȱàдMain.java
public class Main
{
public native static int getStrNum(byte str[], int strLen);
}
ÔÚÃüÁîÐÐÖУ¬Ê¹ÓÃÈçÏÂÃüÁî±àÒ룺
javac Main.java
ÏÂÃæµÄÃüÁÉú³ÉMain.hÍ·Îļþ
javah Main
´ò¿ªvs2008£¬ н¨¹¤³ÌMakeDll£¨win32 console application£©£¬ÉèÖÃÏîÄ¿ÊôÐÔÈçÏ£º
ÔÚproject-¡·MakeDll Properties-¡·ÔÚGeneralÑ¡ÏÉÏ£¬Ñ¡ÔñÉú³ÉdllÎļþ¡£
ͬʱÐèÒªÔÚÏîÄ¿µÄc++ÏÂgeneralϵÄAdditional include directoryϼÓÔØjdk°²×°Ä¿Â¼ÏµÄincludeÎļþ¼ÐºÍ¸ÃÎļþ¼ÐϵÄwin32
×ÓĿ¼¡£
½«µÚÒ»²½Éú³ÉµÄMain.hÎļþ¼ÙÈçµ½¹¤³ÌÖУ¬Í¬Ê±Ð½¨Ò»¸ömain.cppÎļþ£¬ÔÚÆäÖмÙÈçÈçÏ´úÂ룺
#include "Main.h"
#include <string.h>
JNIEXPORT jint JNICALL Java_Main_getStrNum (JNIEnv *env, jclass cls, jbyteArray str, jint strLen)
{
jbyte *buffer = (*env).GetByteArrayElements(str, 0);
buffer[strLen] = ' ';
jint len = strlen((char*)buffer);
return len;
}
±àÒë¼´¿ÉÉú³ÉMakeDll.dllÎļþ¡£
ÔÚjavaÔ´ÎļþÖе÷ÓøÃdllÎļþ£¨×¢ÒâÐèÒª½«dllÎļþºÍ±àÒëµÄclassÎļþ·ÅÖÃÔÚͬһ¸öÎļþ¼ÐÏÂÃæ£©
javaÔ´Îļþ´úÂëÈçÏ£º
public class Main
{
static
{
System.loadLibrary ("MakeDll");
}
public native static int getStrNum (byte[] str, int strLen);
public static void main (String[] args)
{
Main instance = new Main ();
String str = new String ("haha");
int num = instance.getStrNum (str.getBytes (), str.length ());
System.out.println (num);
}
}
±àÒë¸ÃjavaÔ´Îļþ£¬Í¬Ê±Ö´ÐиÃÎļþ¡£
javac Main.java
java Main
¼´¿ÉÊä³öÏàÓ¦½á¹û¡£
Ïà¹ØÎĵµ£º
public class javaTest {
public static void test(String ...strings){
for(String str: strings){
System.out.print(str + " ");
}
System.out.println();
}
public static void main(String[] args){
test("a", "b", "c", "ddd");
test( ......
±àÕß°´£ºÔçÔÚÉÏÊÀ¼Í90Äê´ú£¬¸÷ÖÖ¹ØÓÚJavaÒÑËÀµÄ¶ÏÑÔ¾ÍÒѾ¿ªÊ¼³öÏÖ¡£Ê®¶àÄêÖ®ºóµÄ½ñÄ꣬ÕâÑùµÄÑÔÂÛÒÀÈ»²»¾øÓÚ¶ú¡£ÒԹؼü´Ê"java is dead"ÔÚGoogleÖÐËÑË÷£¬µÃµ½´óÔ¼199,000Ìõ½á¹û£¬Óɴ˿ɼû²»ÉÙÈËд¹ý»òÆÀÂÛ¹ýJavaµÄËÀÍö¡£Õë¶ÔÕâÃÅÒÑËÀÊ®¶àÄêµÄÓïÑÔ£¬×÷ÕßÔÚÎÄÖиÅÊöÁ˵±½ñJavaµÄµØÎ»¼°Æä·¢Õ¹Ç÷ÊÆ£¬ÓÐÁ¦µØ»Ø»÷ÁËÕâЩ´«ÑÔ¡£È«Î ......
×î½ü°àÀïµÄͬѧ¶¼Ã¦×ű¨°à£¬Óиö´ïÄÚÊÇjavaÅàѵ£¬ÓиöÉîÀ¶ÊÇC++Åàѵ£¬ÍøÉÏ¿´ÁËЩÌû×Ó˵ʲôµÄ¶¼ÓУ¬×ÔÎҸоõÅàÑøÒ»¸öC++³ÌÐòÔ±µÄÖÜÆÚÒª±ÈÅàÑøÒ»¸öjAVA³ÌÐòÔ±µÄÖÜÆÚ³¤ºÜ¶à£¬µ±È»£¬C++ÒªÊÇѧµÄºÃµÄ»°¿Ï¶¨±ÈѧjavaµÄÅ££¬µ«ÊǸ¶³öµÄ´ú¼Û¸öÈËÈÏΪÊÇÓкܴó²î¾àµÄ¡£¶ÔÓÚÏÖÔÚÊг¡É϶ÔÓÚÓïÑÔµÄÐèÇóÒ² ......
package reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) {
try {
Class c = Class.forName("reflect.Student");// ¸ù¾ÝÀàµÄÍêÕûÀàÃû´´½¨ÀàÏó
  ......
×î½üÔÚʹÓÃPowerDesignerÉè¼ÆÊý¾Ý¿â,Éè¼ÆÍêcdm ºÍ pdmʱ,Á˽⵽¿ÉÒÔÓÃoom×Ô¶¯Éú³ÉJavaÀà.
µ«ÊÇÉú³ÉµÄJavaÀàµÄĬÈϸñʽºÍ×Ô¼ºµÄÒªÇóÓÐÆ«²î,×îÖյõ½ÁËЩ½â¾ö°ì·¨.ÕâÀï¼Ç¼ÁËÏÂ.(ÎÒʹÓõİ汾ÊÇPowerDesigner12)
ÔÚoomÄ£ÐÍÖÐlanguage>edit current object language. ÀàµÄÖ÷¸ñʽÊÇ ......