JavaÓëC++ÓïÑÔÔÚJNIϵĽ»»¥
java»·¾³Ïµ÷ÓÃVC++±àдµÄ¶¯Ì¬Á´½Ó¿âÎļþ
Ò»£¬¿ª·¢Æ½Ì¨£º
MyEclipse 6.0£¬VC++6.0
¶þ£¬JNI»ù´¡ÖªÊ¶£º
JNI(java native interface)£¬JAVA±¾µØ½Ó¿Úµ÷Óã¬Ä¿µÄÊÇΪÁËJAVA¿ÉÒÔµ÷Óñ¾µØ³ÌÐò¡£
Èý£¬½»»¥¹ý³Ì£º
1£¬½¨Á¢javaÀà¡£ÀýÈ磬½¨Á¢Ò»¸öRSA¼ÓÃܽâÃܵÄÀࣺ
package zkxx.ctais2.client.common;
public class RsaEncrypt {
/**
* @param args
*/
public native String GetKeys();
public native String Encrypt(String source,String PublicKey);
public native String Decrypt(String cipher,String PrivateKey);
static {
System.loadLibrary("RSAEncrypt");
}
public static void main(String[] args) {
}
}
2£¬Éú³ÉC++ÓïÑÔµÄÍ·Îļþ£º
1£©×¢Ò⣺ÀûÓÃjavah¹¤¾ßÉú³ÉÍ·ÎļþÐèҪעÒ⣬ÀàµÄ°ü½á¹¹£¬ºÍclassÎļþ´æ´¢µÄ·¾¶¡£
ÀýÈ磺±¾µØclassÎļþ´æ´¢Â·¾¶£ºE:\lclai\lclai\src\
°ü½á¹¹Ó¦Îª£ºE:\lclai\lclai\src\com\org\lclai
RsaEncrypt.javaÓ¦¸Ã´æ·ÅÔÚ°ü·¾¶Ï¡£
2£©CMDÃüÁîÌáʾ·ûϽøÈëE:\lclai\lclai\src\com\org\lclai·¾¶
ÊäÈëÃüÁjavac RsaEncrypt.java
»Ø³µ¡£
°ÑÉú³ÉµÄclassÎļþ¿½±´µ½Â·¾¶E:\lclai\lclai\src\
CMDÃüÁîÌáʾ·ûϽøÈëE:\lclai\lclai\src\
ÊäÈëÃüÁjavah -classpath E:\lclai\lclai\src -jni E:\lclai\lclai\src\com\org\lclai\RsaEncrypt
»Ø³µ¡£
ÔÚ·¾¶E:\lclai\lclai\src\±ã»áÉú³ÉÒÔ°ü½á¹¹ºÍÀàÃû½áºÏµÄÍ·Îļþ¡£
3£¬±àдcppÎļþ
cppÎļþÍ·ÐèÒª°üº¬¸Õ¸ÕÉú³ÉµÄ.hÎļþ£¬´ËÍ⻹ÐèÒª°üº¬jni.h.
// RSAEncrypt.cpp : Defines the initialization routines for the DLL.
//
#include "stdafx.h"
#include "RSAEncrypt.h"
#include "CryptoPP32.h"
#include "zkxx_ctais2_client_common_RsaEncrypt.h"
#include "jni.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//
// Note!
//
// If this DLL is dynamically linked against the MFC
// DLLs, any functions exported from this DLL which
// call into MFC must have the AFX_MANAGE_STATE macro
// added at the very beginning of the function.
//
// For example:
//
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
//
Ïà¹ØÎĵµ£º
1.»ù±¾¸ÅÄîµÄÀí½â
¡¡¡¡¾ø¶Ô·¾¶£º¾ø¶Ô·¾¶¾ÍÊÇÄãµÄÖ÷Ò³ÉϵÄÎļþ»òĿ¼ÔÚÓ²ÅÌÉÏÕæÕýµÄ·¾¶£¬(URLºÍÎïÀí·¾¶)ÀýÈ磺
C:\xyz\test.txt ´ú±íÁËtest.txtÎļþµÄ¾ø¶Ô·¾¶¡£http://www.sun.com/index.htmÒ²´ú±íÁËÒ»¸ö
URL¾ø¶Ô·¾¶¡£
¡¡¡¡Ïà¶Ô·¾¶£ºÏà¶ÔÓëij¸ö»ù׼Ŀ¼µÄ·¾¶¡£°üº¬WebµÄÏà¶Ô·¾¶£¨HTMLÖеÄÏà¶ÔĿ¼£©£¬ÀýÈ磺ÔÚ
......
1¡¢ Java¶ÔÏó¸³Öµ
Java´úÂë
Employee e1=
new
Employee(
"Àî"
);
//EmployeeÊÇÒ»¸ö×Ô¶¨ÒåÀà
Employee e2=e1; //¸³Öµ¶ÔÏó
e2.setName("Íõ"
);
//¸Ä±ä¶ÔÏóe2µÄÃû×Ö
System.out.println(e1.getName ......
ͻ񻣼
±¾ÎÄÕë¶Ôjava³õѧÕß»òÕßannotation³õ´ÎʹÓÃÕßÈ«ÃæµØËµÃ÷ÁËannotationµÄʹÓ÷½·¨¡¢¶¨Ò巽ʽ¡¢·ÖÀà¡£³õѧÕß¿ÉÒÔͨ¹ýÒÔÉϵÄ˵Ã÷ÖÆ×÷¼òµ¥µÄannotation³ÌÐò£¬µ«ÊǶÔÓÚһЩ¸ß¼¶µÄannotationÓ¦Óã¨ÀýÈçʹÓÃ×Ô¶¨ÒåannotationÉú³ÉjavabeanÓ³ÉäxmlÎļþ£©»¹ÐèÒª½øÒ»²½µÄÑо¿ºÍ̽ÌÖ¡£Éæ¼°µ½ÉîÈëannotationµÄÄÚÈÝ£¬×÷Õß½«ÔÚºóÎÄ¡ ......
class TestTryFinallyC {
public static void main(String[] args) {
System.out.println(testt());
}
public static int testt() {
int x = 99;
try {
return x;
}finally {
x = 8;
}
}
}
ijÄêijÔµÄijһÌ죬 ......
1£©Java Language Specification, Third Edition (by James Gosling)
±¾ÊéÓÉJava¼¼ÊõµÄ·¢Ã÷Õß±àд£¬ÊÇJava TM±à³ÌÓïÑÔµÄȨÍþÐÔ¼¼ÊõÖ¸ÄÏ¡£Èç¹ûÄãÏëÖªµÀÓïÑÔÖ®¹¹ÔìµÄ¾«È·º¬Ò壬±¾ÊéÊÇ×îºÃµÄ×ÊÔ´¡£
&nbs ......