プロジェクトのニーズのため、私は最近、JavaがDLLを呼び出す方法を研究しました。それを呼び出す方法は、将来簡単に参照できるようにここに書かれています:
採用された方法はJNI:JNIと呼ばれるJAVAネイティブインターフェイスであり、JNIと呼ばれ、Javaプラットフォームの一部であり、他の言語でJavaで書かれたコードと対話するために使用できます。
以下は、インターネットから抽出されたJNI作業の概略図です。
全体的な説明:最初にJavaでクラスを作成し、Javacを介して.classを生成してから、Javahから.hを生成します。次に、.hをVCにコピーし、VCで特定の関数を実装します。
コンパイルして通過した後、DLLを生成し、DLLをJavaプロジェクトに入れて使用すると終了します。
特定の手順(例を含む)について話しましょう。
1. Javaクラスの構築:DLLをロードし、DLLメソッドを使用する必要があることを宣言し、特定の実装がDLLに責任を負います。コードは次のとおりです。
public class java2cpp {static {system.loadLibrary( "javacallcpp");} public Native int dll_add(int a、int b); // public Native int dll_sub(int a、int b)を追加します。 //パブリックネイティブint dll_mul(int a、int b)を減少させます。 //複数のパブリックネイティブint dll_div(int a、int b); // public static void main(string args []){int sum = 0; java2cpp test = new java2cpp(); sum = test.dll_add(2、4); system.out.println( "java call cpp dll result:" + sum);}}}2.生成.hファイル:java2cpp.javaディレクトリへのcmdと以下を実行します。
ステップ1:Javac java2cpp.javaはjava2cpp.classを生成します
ステップ2:Javah java2cpp次のコンテンツを使用して、Java2cpp.hヘッダーファイルを生成します。
注:ヘッダーファイルjava2cpp.hのコンテンツは変更できません。そうしないと、エラーが発生します。
3。VCダイナミックライブラリの作成:JavaCallcppという名前のC/C ++ダイナミックライブラリプロジェクトを作成し、Java2CPP.Hをインポートし、その方法を実装してください。
#include "java2cpp.h" #include "dllapi.h" jniexport jint jnicall java_java2cpp_dll_1dll_1addd(jnienv *env、jobj、jint A、jint b){int var = 0; var = dll_api_add(b); b) java_java2cpp_dll_1sub(jnienv *env、job obj、jint a、jint b){int var = 0; var = dll_api_sub(a、b); return var;} jniexport jint jnicall java_java2cpp_dll_1l_1l_1mul(jnienv *ven b) var = 0; var = dll_api_mul(a、b); return var;} jniexport jint jnicall java_java2cpp_dll_1div(jnienv *env、job obj、jint a、jint b){int var = 0; var = dll_api_div(a b); return var;dll_api_add()を追加し、dll_api_sub()を削除し、dll_api_mul()を掛け、dll_api_div()を除算します。
ファイルに実装されているファイル名はdllapi.cppで、実装は次のとおりです。
int dll_api_add(int a、int b){return(a+b);} int dll_api_sub(int a、int b){return(ab);} int dll_api_mul(int a、int b){return(a*b);} int dll_api_div(int b){a/b);現時点では、プロジェクトは引き続きコンパイルされます。<jni.h>にはエラーがあるため、次のようにJNIのあるディレクトリを追加する必要があります。
4。ダイナミックライブラリプロジェクトをコンパイルします:javacallcpp.dllを生成し、この動的ライブラリをJavaプロジェクトディレクトリにコピーします。
5.DLLを使用:Javaプログラムを実行します。結果は次のとおりです。
この時点で、Java Call DLLが完了しました。
要約します
上記は、編集者が紹介するC/C ++を呼び出すことで実装されたJava Dynamic Library -JNIの方法です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!