ʵÏÖ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
Ïà¹ØÎĵµ£º
½ñÌìÓöµ½ÕâÑùµÄÎÊÌâ¡£ÐèÒªÏÂÔØÒ»¸öÎļþ£¬¸ÃÎļþµÄurlÈçÏ£º hxxp://www.abc.com/view/img/%E7%BD%91%E4%B8%8A%E8%B4%AD%E7%89%A9.rar
´ËÁ´½ÓÔÚä¯ÀÀÆ÷Ï»áÖØ¶¨Ïòµ½±ðµÄÍøÕ¾¡£ËùÒÔÏÂÔØÏÂÀ´µÄÎļþ²¢·ÇÎÒÏëÒªµÄ¡£²éÁËÏÂÔÀ´ÊÇurl±àÂëºóµÄÎļþÃû¡£ÄÇôҪÏëÏÂÔØ¾Í±ØÐë¶ÔÕâ¸ö±àÂë½øÐнâÂë¡£¡£¡£¡£¡£
& ......
ǰ²»¾ÃдÁ˸öÏÂÔØÎļþµÄ·½·¨¡£¾¹ýÒ»¶Îʱ¼äÔÚ³ÌÐòÖеÄÔËÓ㬷¢ÏÖÁ˼¸¸öÎÊÌâ¡£ÐÞÕýһϣº
public static File saveToFiles(String destUrl,String path) throws IOException {
final int BUFFER_SIZE = 4096;
&nb ......
import java.io.*;
//¶àÏ̱߳à³Ì
public class MultiThread
{
public static void main(String args[])
{
System.out.println("ÎÒÊÇÖ÷Ïß³Ì!");
//ÏÂÃæ´´½¨Ïß³ÌʵÀýthread1
ThreadUseExtends thread1=new ThreadUseExtends();
//´´½¨thread2ʱÒÔʵÏÖÁ ......