"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java를 C++ 애플리케이션에 통합하는 방법: Java 코드를 즉시 실행할 수 있습니까?

Java를 C++ 애플리케이션에 통합하는 방법: Java 코드를 즉시 실행할 수 있습니까?

2024-11-07에 게시됨
검색:959

How to Integrate Java into C   Applications: Can You Run Java Code on the Fly?

Java를 C 애플리케이션에 통합

C 애플리케이션의 기능을 확장하려면 Java 구성 요소를 통합하는 것이 바람직할 수 있습니다. 이는 Python을 통해 달성되었지만 Java 통합에 대한 명확한 솔루션은 없었던 것 같습니다.

C의 JNI 및 Java 클래스 사용

Java 네이티브 인터페이스(JNI)는 잠재적인 솔루션이지만 일반적으로 Java 클래스를 활용하는 전체 Java 프로그램을 가정합니다. 그러나 이 경우 목표는 C 애플리케이션 내에서 Java 클래스를 활용하는 것입니다.

Fly에서 Java 코드 컴파일 및 평가

원하는 기능에는 컴파일이 포함됩니다. JNI 또는 유사한 메커니즘을 사용하여 런타임 중에 스크립트 언어와 같은 Java 코드를 실행합니다.

Java 코드 예

import c4d.documents.*;

class Main {
  public static void main() {
    BaseDocument doc = GetActiveDocument();
    BaseObject op = doc.GetActiveObject();
    if (op != null) {
      op.Remove();
    }
  }
}

솔루션: 내장형 JVM

솔루션은 C 애플리케이션 내에 JVM(Java Virtual Machine)을 내장하는 것입니다. Oracle의 참고서는 필요한 정보를 제공합니다. 주요 단계는 다음과 같습니다.

  • 포함 및 JVM 인수 초기화(JavaVM 및 JNIEnv)
  • JNI_CreateJavaVM()을 호출하여 JVM 초기화
  • 사용 Java 메소드(예: jclass, jmethodID 및 jmethod)를 호출하는 JNI
  • JNI_DestroyJavaVM()을 사용하여 JVM 삭제

이를 통해 사용자 정의 클래스 로더와 같은 보다 정교한 작업이 가능합니다. C 애플리케이션에 필요한 Java 기능 통합을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3