En esta página

Qt Jenny: Generador de código Java

Qt Jenny traduce APIs Java a envoltorios Qt C++, permitiendo a los programas Qt C++ invocar funcionalidad Java. Esto es particularmente útil en una plataforma con APIs de sistema Java, como Android.

Características

Qt JennyCaracterísticas:

  • Generación de wrappers para cualquier clase Java.
  • Generación de plantillas con plantillas personalizables que se pueden cambiar para personalizar la salida C++.
  • Generación configurable que permite controlar el espacio de nombres de los wrappers generados.
  • Soporte para generar código que utilice QJniObject en el código generado, utilizando así toda la comodidad que aporta QJniObject.

Ejemplos

Consulte QtJenny Demo para ver un ejemplo de cómo utilizar Qt Jenny.

Cómo funciona Qt Jenny

Qt Jenny traduce APIs Java a envoltorios C++ de Qt mediante el uso de los siguientes bloques de construcción:

  • Código Kotlin que importa las clases que se van a envolver.
  • Anotaciones en ese código que indican qué clases envolver.
  • Un generador de código que lee las anotaciones y genera el código de envoltura.

Con estos bloques de construcción, el proyecto Qt se estructura de manera que hay un proyecto Gradle separado para generar el código que utiliza el proyecto Qt CMake. El proyecto CMake activa la generación de código en el momento de configuración del proyecto (en otras palabras, cuando ejecutas CMake). Para una aplicación que invoca métodos pero no necesita implementar callbacks, un único proyecto de generación de código es suficiente. Para una aplicación que utiliza tanto invocaciones de métodos como callbacks de interfaces, se necesitan dos proyectos de generación: uno para los proxies de métodos y otro para la jerarquía de callbacks. Para una aplicación que necesite extender clases, se necesitan tres proyectos de generación: uno para los métodos proxy, otro para el código Java glue y otro para la jerarquía de callbacks.

El código de ejemplo de QtJenny Demo utiliza tres proyectos de generación, ya que utiliza la extensión de clases.

Cómo funciona

Referencia

Licencias y atribuciones

Qt Jenny contiene potencialmente módulos de terceros bajo las siguientes licencias permisivas:

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.