java 調用c/c++

java 調用c/c++ java

 

第一步: c++

編寫java程序:如-- 函數

public class Pxy { spa

static{ 開發

//加載動態庫 字符串

System.loadLibrary("pxy"); get

} cmd

//此方法不用再java中實現 string

 //這裏定義的函數咱們是但願它能 it

//C++中運行--提升程序的效率

// 方法set 是初始化兩個參數

public native static  void set(int a,int b);

//計算兩個參數的和

public native static int sum();

//從其餘地方返回字符串

public native static void setString(String s);

public native static void getString();

public static void main(String[] args){

Pxy p = new Pxy();

p.set(12, 9);

System.out.println("The Result is "+p.sum());

p.getString();

}

}

第二部:

建立一個c/c++的運用程序的頭文件

在本身的目錄--cmd 進行編寫

如:進到本身的類文件中(.class

javah 類名

編譯成功後:

第三部:

把相應的頭文件放進本身的Vc++開發環境的include包中--在後面須要用到 還有jdk inclue中 jni.h include的其餘兩個頭文件。

第四部:進行編寫c/c++項目

你能夠打開剛剛你生成的頭文件--裏面有相應的信息--如個人

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class Pxy */

#ifndef _Included_Pxy

#define _Included_Pxy

#ifdef __cplusplus

extern "C" {

#endif

/*

 * Class:     Pxy

 * Method:    set

 * Signature: (II)V

 */

JNIEXPORT void JNICALL Java_Pxy_set

  (JNIEnv *, jclass, jint, jint);

/*

 * Class:     Pxy

 * Method:    sum

 * Signature: ()I

 */

JNIEXPORT jint JNICALL Java_Pxy_sum

  (JNIEnv *, jclass);

/*

 * Class:     Pxy

 * Method:    setString

 * Signature: (Ljava/lang/String;)V

 */

JNIEXPORT void JNICALL Java_Pxy_setString

  (JNIEnv *, jclass, jstring);

/*

 * Class:     Pxy

 * Method:    getString

 * Signature: ()V

 */

JNIEXPORT void JNICALL Java_Pxy_getString

  (JNIEnv *, jclass);

#ifdef __cplusplus

}

#endif

#endif

----------------------------------------

在編寫c/c++程序中--你就要根據本身的須要,把相應的函數進行實現。

如我實現了:

#include "Pxy.h"

int i=0,j=0;

JNIEXPORT void JNICALL Java_Pxy_set(JNIEnv *, jclass, jint a, jint b){

i=a;j=b;

}

JNIEXPORT jint JNICALL Java_Pxy_sum(JNIEnv *, jclass){

return i+j;

}

JNIEXPORT void JNICALL Java_Pxy_getString(JNIEnv *, jclass){

printf("\n");

printf("個人名言:風雨無阻--豔麗人生");

return ;

}

這幾個方法----

--------------------------------

------------------------------

這已經成功。

相關文章
相關標籤/搜索