ʵÏÖjavaµ÷ÓÃc
µÚÒ»ÖÖ·½Ê½²ÉÓÃjni£º
Java²»ÊÇÍêÃÀµÄ£¬JavaµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Í⣬JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã£¨ÈçϵͳӲ¼þµÈ)£¬Îª´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£
¡¡¡¡¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
1.ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻ÀýÈ磺¡¡public native void displayHelloWorld();
2.È»ºóÔÚclasses»òbinÖ®ÀàµÄclass¸ùĿ¼ÏÂÖ´ÐÐjavah -jni file£¬¾Í»áÔÚ¸ùĿ¼Ïµõ½Ò»¸öfile.hµÄÎļþ¡£
3.±àдһ¸ö.cÎļþʵÏÖnativeµ¼³ö·½·¨£¬ÆäÖÐÐèÒª°üº¬µÚ¶þ²½²úÉúµÄ.hÎļþ£¨×¢ÒâÆäÖÐÓÖ°üº¬ÁËJDK´øµÄjni.hÎļþ£©£» ÀýÈ磺
#include "file.h"
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡JNIEXPORT void JNICALL Java_file_displayHelloWorld(JNIEnv *env, jobject obj)
¡¡¡¡{
¡¡¡¡printf("Hello world!\n");
¡¡¡¡return;
¡¡¡¡}
4.½«µÚÈý²½µÄ.cppÎļþ±àÒë³É¶¯Ì¬Á´½Ó¿âÎļþ£¬vcµÄ±àÒë·½·¨£ºcl -I%java_home%\include -I%java_home%\include\win32 -LD file.c -Fetest.dll £¬Ö®ºó±àÒëÉú³ÉDLLÎļþÈç“test.dll”¡£
5.¡¢ÔÚJavaÖÐÓÃSystem.loadLibrary()·½·¨¼ÓÔØµÚËIJ½²úÉúµÄ¶¯Ì¬Á´½Ó¿âÎļþ£¬Õâ¸önative()·½·¨¾Í¿ÉÒÔÔÚJavaÖб»·ÃÎÊÁË¡£ÀýÈ磺
static
¡¡¡¡{
¡¡¡¡System.loadLibrary("test");
¡¡¡¡}
¡¡¡¡public static void main(String[] args) {
¡¡¡¡new file().displayHelloWorld();
¡¡¡¡}
×îºóÔÚÔËÐÐʱ¼Ó²ÎÊý-Djava.library.path=[dll´æ·ÅµÄ·¾¶]
µÚ¶þÖÖ·½Ê½£ºÓÃsocket£¬Ð´Ò»¸ö·þÎñ¶ËºÍÒ»¸ö¿Í»§¶Ë£¬´Ó¿Í»§¶Ë·¢ËÍÒ»¸öcµÄÃüÁî¹ýÈ¥£¬·þÎñ¶Ë½ÓÊÕÃüÁîÈ»ºóµ÷ÓÃc³ÌÐò¡£·þÎñ¶Ë½ÓÊÕÃüÁîºóµÄÀý×Ó£º
private int doProcessCmd(String cmd)
{
Runtime rum = null;
Process proc = null;
int waitResult=0;
try {
rum = Runtime.getRuntime();
proc = rum.exec(cmd);
waitResult = proc.waitFor();
if(waitResult==0)//wait for cpp
{
&nb
Ïà¹ØÎĵµ£º
ͨ¹ý·´Éä´´½¨ÐÂÀàʾÀýµÄÁ½ÖÖ·½Ê½¼°±È½Ï
×÷ÕßBLOG£ºhttp://blog.csdn.net/fenglibing
ͨ¹ý·´Éä´´½¨ÐµÄÀàʾÀý£¬ÓÐÁ½ÖÖ·½Ê½£º
Class.newInstance()
Constructor.newInstance()
ÒÔ϶ÔÁ½ÖÖµ÷Ó÷½Ê½¸øÒԱȽÏ˵Ã÷£º
l Class.newInstance() Ö»ÄÜ ......
ÎÒÄܳéÏó³öÕû¸öÊÀ½ç£®£®£®
µ«ÊÇÎÒ²»ÄܳéÏó³öÄ㣮£®£®
ÒòΪÄãÔÚÎÒÐÄÖÐÊÇÄÇôµÄ¾ßÌ壮£®£®
ËùÒÔÎÒµÄÊÀ½ç²¢²»ÍêÕû£®£®£®
ÎÒ¿ÉÒÔÖØÔØÉõÖÁ¸²¸ÇÕâ¸öÊÀ½çÀïµÄÈκÎÒ»ÖÖ·½·¨£®£®£®
µ«ÊÇÎÒÈ´²»ÄÜÖØÔØ¶ÔÄãµÄ˼Ä£®£®
Ò²ÐíÃüÖÐ×¢¶¨ÁË ÄãÔÚÎÒµÄÊÀ½çÀïÓÀÔ¶µÄÀÓÉÏÁ˾²Ì¬µÄÊôÐÔ£®£®£®
¶øÎÒ²»É÷µ÷ÓÃÁ˰®ÄãÕâ¸ö·½·¨£®£®£®
µ ......
public class TextDemo {
public static void main(String[] args) {
RunnableEemo r1 = new RunnableEemo();
r1.REemo(r1);
System.out.println(r1.print());
}
}
class RunnableEemo extends ThreadRun implements Runnable {
Thread t2 = null;
public void REemo(RunnableEemo r1) {
Thread t1 = ......
java³£Óü¯ºÏÀàÏê½â£¨ÓÐÀý×Ó£¬¾µäÄÅ£¡£¡£¡¼¯ºÏÀàºýÍ¿µÄÀ´¿´°¡£¡£¡£©
Collections Framework
¼¯ºÏ¿ò¼ÜÊÇÒ»¸öͳһµÄ¼Ü¹¹,ÓÃÀ´±íʾºÍ²Ù×÷¼¯ºÏ.
¼¯ºÏ¿ò¼ÜÖ÷ÒªÊÇÓɽӿÚ,³éÏóÀàºÍʵÏÖÀ๹³É.
½Ó¿Ú:À¶É«£»ÊµÏÖÀࣺºìÉ«
Collection
|_____Set(HashSet)
| |_____SortedSet(Tree ......