C アプリケーションへの Java の埋め込み
Java の機能を既存の C アプリケーションに統合すると、その機能を拡張できます。この記事では、その可能性を探り、この目標を達成する方法についてのガイダンスを提供します。
JNI と Java の統合
Java Native Interface (JNI) は、C と C の間のブリッジとして機能します。 Java コード。 C から Java クラスおよびメソッドに直接アクセスできるようになります。ただし、JNI は主に C ライブラリを組み込んだ Java プログラムに焦点を当てています。
C -Java クラスの対話
目的は、実行中の Java スクリプト内から C クラスと対話することです。 。これは、Java 仮想マシン (JVM) を C アプリケーションに埋め込むことで可能になります。
JNI による JVM の埋め込み
JNI は、JVM の埋め込みに必要なツールを提供します。簡略化した例を次に示します。
<code class="c++">#include <jni.h> int main() { JavaVM *jvm; JNIEnv *env; JDK1_1InitArgs vm_args; vm_args.version = 0x00010001; JNI_GetDefaultJavaVMInitArgs(&vm_args); JNI_CreateJavaVM(&jvm, &env, &vm_args); jclass cls = env->FindClass("Main"); jmethodID mid = env->GetStaticMethodID(cls, "test", "(I)V"); env->CallStaticVoidMethod(cls, mid, 100); jvm->DestroyJavaVM(); return 0; }</code>
サンプル Java スクリプト
JVM が埋め込まれたら、次のような Java スクリプトを実行できます。
<code class="java">import c4d.documents.*; class Main { public static void main() { BaseDocument doc = GetActiveDocument(); BaseObject op = doc.GetActiveObject(); if (op != null) { op.Remove(); } } }</code>
このスクリプトは、C アプリケーション (この場合は 3D アプリケーション Cinema 4D) と対話して、選択したオブジェクトを削除できます。
要約すると、JNI 経由で JVM を埋め込むと、Java 機能を Java アプリケーションに統合できます。 C コードを拡張して、実行中の Java スクリプト内からその機能を拡張し、C クラスと対話できるようにします。
以上がJava 機能を既存の C アプリケーションに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。