Auf dieser Seite

Qt Jenny: Java-Code-Generator

Qt Jenny übersetzt Java-APIs in Qt C++-Wrapper, so dass Qt C++-Programme Java-Funktionen aufrufen können. Dies ist besonders nützlich auf einer Plattform mit Java-System-APIs, wie Android.

Funktionen

Qt JennyEigenschaften von Qt C++:

  • Generierung von Wrappern für jede Java-Klasse.
  • Schablonengenerierung mit anpassbaren Schablonen, die geändert werden können, um die C++-Ausgabe anzupassen.
  • Konfigurierbare Generierung, die es erlaubt, den Namespace der generierten Wrapper zu steuern.
  • Unterstützung für die Generierung von Code, der QJniObject im generierten Code verwendet, wodurch alle Vorteile von QJniObject genutzt werden können.

Beispiele

Siehe QtJenny Demo für ein Beispiel zur Verwendung von Qt Jenny.

Wie Qt Jenny funktioniert

Qt Jenny übersetzt Java APIs in Qt C++ Wrapper durch die Verwendung der folgenden Bausteine:

  • Kotlin-Code, der die zu wrappenden Klassen importiert.
  • Annotationen in diesem Code, die angeben, welche Klassen gewrappt werden sollen.
  • Ein Codegenerator, der die Annotationen liest und den Wrapper-Code erzeugt.

Mit diesen Bausteinen wird das Qt-Projekt dann so strukturiert, dass es ein separates Gradle-Projekt für die Generierung des Codes gibt, den das Qt-CMake-Projekt verwendet. Das CMake-Projekt stößt die Code-Generierung zur Zeit der Projektkonfiguration an (mit anderen Worten, wenn Sie CMake ausführen). Für eine Anwendung, die Methoden aufruft, aber keine Rückrufe implementieren muss, ist ein einziges Projekt zur Codegenerierung ausreichend. Für eine Anwendung, die sowohl Methodenaufrufe als auch Schnittstellen-Callbacks verwendet, werden zwei Generierungsprojekte benötigt: eines für die Methoden-Proxys und eines für die Callback-Hierarchie. Für eine Anwendung, die Klassen erweitern muss, werden drei Generierungsprojekte benötigt: eines für die Methoden-Proxys, eines für den Java-Glue-Code und eines für die Callback-Hierarchie.

Der Beispielcode in QtJenny Demo verwendet drei Generierungsprojekte, da er Klassenerweiterungen verwendet.

Wie es funktioniert

Referenz

Lizenzen und Zuschreibungen

Qt Jenny QtJenny enthält möglicherweise Module von Drittanbietern unter den folgenden erlaubten Lizenzen:

© 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.