JavaÖе÷ÓÃC/C++Éú³ÉµÄDLL
JavaÖе÷ÓÃC/C++Éú³ÉµÄDLL
Ò»¡¢ Éú³ÉCµÄÍ·Îļþ
¡¡¡¡1. ±à¼Main.java
¡¡public class Main
¡¡¡¡{
¡¡¡¡public native static int getStrNum(byte str[], int strLen);
¡¡¡¡}
¡¡¡¡2. Éú³ÉÍ·Îļþ
¡¡¡¡°´win + r´ò¿ª“ÔËÐД´°¿Ú£¬ÊäÈë“cmd”£¬´ò¿ªDOS¿ØÖÆÌ¨´°¿Ú¡£½øÈëÉÏÃæMain.javaËùÔÚµÄĿ¼ÖУ¬ÊäÈ룺
¡¡¡¡javac Main.java
¡¡¡¡javah Main
¡¡¡¡Á½ÌõÃüÁîÍê³Éºó»áÉú³ÉMain.hÎļþ
¡¡¡¡¶þ¡¢ Éú³ÉDLL
¡¡¡¡1. н¨¿Õ¹¤³Ì
¡¡¡¡ÔÚVSÖÐн¨¹¤³Ì£ºWin32 Console Application£¬È¡Ãû“MakeDLL”£¬Ñ¡Ôñ¿Õ¹¤³Ì¡£Ð½¨ºóÐ޸Ť³ÌÊôÐÔ£º
¡¡¡¡(1) GeneralÖУ¬½«“Configuration Type”¸ÄΪ“Dynamic Library (.dll)”£»
¡¡¡¡(2) C/C++µÄGeneralÖУ¬½«“Additional Include Directories”Ìí¼ÓÁ½Ï
¡¡¡¡“C:Program FilesJavajdk1.5.0_06include”
¡¡¡¡“C:Program FilesJavajdk1.5.0_06includewin32”
¡¡¡¡¸ù¾ÝÄã°²×°µÄJAVA·¾¶¶øÉèÖã¬ÕâÊÇÒòΪÔÚC/C++±àÒë¹ý³ÌÖÐҪʹÓÃJAVAµÄjni.hµÈÎļþ
¡¡¡¡2. ½«ÉÏÃæÉú³ÉµÄMain.hÌí¼ÓÈ빤³Ì
¡¡¡¡3. н¨Ò»¸öеÄÎļþ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] = ’’; // ÓÉÓÚJAVA×Ô¶¯·ÖÅä¿Õ¼ä£¬ÐèÒª´«½øÀ´×Ö·û´®³¤¶È²ÎÊý
¡¡¡¡jint len = strlen((char*)buffer);
¡¡¡¡return len;
¡¡¡¡}
¡¡¡¡4. °´F7±àÒëÁ´½Ó£¬Éú³ÉMakeDLL.dllÎļþ
¡¡¡¡Èý¡¢ JAVAµ÷ÓÃDLL
¡¡¡¡ÔÚJAVAÖÐʹÓÃÉÏÃæÉú³ÉµÄDLLÎļþ£º
¡¡¡¡1. ½«MakeDLL.dll¸´ÖƵ½ÓëʹÓÃDLLµÄJAVAÎļþÏàͬµÄĿ¼Ï¡£
¡¡¡¡2. JAVAÎļþµÄÔ´´úÂ룺
public class Main
¡¡¡¡{
¡¡¡¡static
¡¡¡¡{
¡¡¡¡System.loadLibrary(’MakeDLL’);
¡¡¡¡}
¡¡¡¡public native static int getStrNum(byte str[], int strLen);
¡¡¡¡public static void main(String[] args)
¡¡¡¡{
¡¡¡¡
Ïà¹ØÎĵµ£º
import java.io.UnsupportedEncodingException;
public class T {
public static void main(String[] args) throws UnsupportedEncodingException {
t1();//ASCIIת»»Îª×Ö·û´®
t2();//×Ö·û´®×ª»»ÎªASCIIÂë
}
public static void t1(){//ASCIIת»»Îª×Ö·û´®
......
Ò»:¼ò½é
±¾ÎĽéÉÜÁËJavaÓë.NET¿ª·¢µÄWeb ServicesÏ໥µ÷Óõļ¼Êõ¡£±¾ÎİüÀ¨Á½¸ö²¿·Ö£¬µÚÒ»²¿·Ö½éÉÜÁËÈçºÎÓÃ.NET×ö¿Í»§¶Ëµ÷ÓÃJavaдµÄWeb Services,µÚ¶þ²¿·Ö½éÉÜÁËÈçºÎÓÃJava×ö¿Í»§¶Ëµ÷ÓÃ.NET¿ª·¢µÄWeb Services¡£ ¡¡
¡¡
¶þ:ÏîÄ¿ÐèÒªµÄ¹¤¾ß¡¡¡¡
WindowsXP Professial(IIS)
¡¡ Eclipse3.1(ÒÑ×°ºÃTomcat axis)
¡¡¡¡VS ......
ÀÏ
ʦÈÃÏÂÔØ°²×°jdk1.4¡¢jdk1.5ºÍjdk1.6Èý¸ö°æ±¾µÄJava¿ª·¢°ü£¬²¢ÇÒÊìÁ·Çл»¸÷¸ö»·¾³£¬Æäʵ¾ÍÊÇÅäÖò»Í¬µÄ»·¾³±äÁ¿¡£ÒÔǰֻÊÇÔÚ»·¾³±ä
Á¿ÖÐÉèÖÃÁËÓû§±äÁ¿£¬JavaÔËÐÐÒ²ºÜÕý³£¡£Ò»µ©ÐèÒªÔÚ¼¸¸ö°æ±¾ÖÐÇл»£¬Óû§±äÁ¿¾ÍʧЧÁË¡£¾¹ý³¢ÊÔ²ÅÖªµÀ±ØÐëÉèÖÃϵͳ±äÁ¿£¬ÎªÁË·½±ã¿ÉÒÔÉèÖÃ
JAVA_HOME±äÁ¿ÎªjdkµÄ°²×°Â·¾¶£¬ÔÙ°Ñ %JA ......
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
/**
*
* ¶àÖÖ·½Ê½¶ÁÎ ......
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* ½«ÄÚÈÝ×·¼Óµ½Îļþβ²¿
*/
public class AppendToFile
{
/**
* A·½·¨×·¼ÓÎļþ£ºÊ¹ÓÃRandomAccessFile
*
  ......