C 애플리케이션에 Java 포함
Java 기능을 기존 C 애플리케이션에 통합하면 기능이 확장될 수 있습니다. 이 문서에서는 가능성을 탐색하고 이 목표를 달성하는 방법에 대한 지침을 제공합니다.
JNI와 Java 통합
JNI(Java Native Interface)는 C와 Java 사이의 다리 역할을 합니다. 자바 코드. 이를 통해 C에서 Java 클래스 및 메소드에 직접 액세스할 수 있습니다. 그러나 JNI는 주로 C 라이브러리를 통합하는 Java 프로그램에 중점을 둡니다.
C -Java 클래스 상호 작용
귀하의 목표는 실행 중인 Java 스크립트 내에서 C 클래스와 상호 작용하는 것입니다. . 이는 JVM(Java Virtual Machine)을 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 기능을 C 코드를 사용하면 실행 중인 Java 스크립트 내에서 기능을 확장하고 C 클래스와 상호 작용할 수 있습니다.
위 내용은 기존 C 애플리케이션에 Java 기능을 통합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!