"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment intégrer Java dans des applications C++ : pouvez-vous exécuter du code Java à la volée ?

Comment intégrer Java dans des applications C++ : pouvez-vous exécuter du code Java à la volée ?

Publié le 2024-11-07
Parcourir:950

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

Intégration de Java dans les applications C

Pour étendre les fonctionnalités d'une application C, l'incorporation d'un composant Java peut être souhaitable. Bien que cela ait été réalisé avec Python, il semble qu'il n'y ait pas eu de solution claire pour l'intégration Java.

Utilisation des classes JNI et Java à partir de C

Java Native L'interface (JNI) est une solution potentielle, mais elle suppose généralement un programme Java complet utilisant des classes Java. Cependant, dans ce cas, l'objectif est d'utiliser les classes Java à partir de l'application C.

Compilation et évaluation du code Java à la volée

La fonctionnalité souhaitée implique la compilation et exécuter du code Java pendant l'exécution (comme un langage de script) à l'aide de JNI ou d'un mécanisme similaire.

Exemple de code Java

import c4d.documents.*;

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

Solution : JVM embarquée

La solution réside dans l'intégration d'une machine virtuelle Java (JVM) au sein de l'application C. L'ouvrage de référence d'Oracle fournit les informations nécessaires. Les étapes clés impliquent :

  • Inclure et initialiser les arguments de la JVM (JavaVM et JNIEnv)
  • Initialiser la JVM en appelant JNI_CreateJavaVM()
  • Utiliser JNI pour invoquer des méthodes Java (par exemple, jclass, jmethodID et jmethod)
  • Détruire la JVM à l'aide de JNI_DestroyJavaVM()

Cela permet des opérations plus sophistiquées, telles que des chargeurs de classes personnalisés, fournissant l'intégration nécessaire des fonctionnalités Java dans l'application C.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3