このページでは

Qt Jenny:Javaコードジェネレータ

Qt Jenny Java API を Qt C++ ラッパーに変換し、Qt C++ プログラムが Java の機能を呼び出せるようにします。これは、AndroidのようなJavaシステムAPIを持つプラットフォームで特に有用です。

機能

Qt Jenny特徴

  • あらゆる Java クラスのラッパーの生成。
  • C++出力をカスタマイズするために変更できるカスタマイズ可能なテンプレートを使ったテンプレート生成。
  • 生成されるラッパーの名前空間を制御できる設定可能な生成。
  • 生成されたコードでQJniObject を使用するコードの生成をサポートし、QJniObject がもたらす利便性をすべて利用できます。

Qt Jenny の使用例についてはQtJenny Demoを参照してください。

Qt Jenny の仕組み

Qt Jenny は、以下のビルディングブロックを使用することで、Java API を Qt C++ ラッパーに変換します:

  • ラップするクラスをインポートする Kotlin コード。
  • ラップするクラスをインポートするKotlinコード。
  • アノテーションを読み取り、ラッパー・コードを生成するコード・ジェネレーター。

これらのビルディングブロックを使って、Qtプロジェクトは、Qt CMakeプロジェクトが使用するコードを生成するための別のGradleプロジェクトが存在するように構成されます。CMakeプロジェクトは、プロジェクトのコンフィギュレーション時(言い換えれば、CMakeを実行した時)にコード生成をトリガーします。メソッドを呼び出しますが、コールバックを実装する必要がないアプリケーションの場合、コード生成プロジェクトは1つで十分です。メソッドの呼び出しとインターフェースのコールバックの両方を使用するアプリケーションでは、2つの生成プロジェクトが必要です。クラスを拡張する必要があるアプリケーションでは、3 つの生成プロジェクトが必要です。1 つはメソッド・プロキシ用、1 つは Java グルー・コード用、1 つはコールバック階層用です。

QtJenny Demoのサンプルコードでは、クラス拡張を使用しているため、3つの生成プロジェクトを使用しています。

仕組み

リファレンス

ライセンスと帰属

Qt Jenny 潜在的には、以下の寛容なライセンスの下にサードパーティモジュールを含んでいます:

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