Qt Jambi: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=Qt Jambi=
[[Category:LanguageBindings::QtJambi]]


This is a community maintained project (‘qtjambi-community’) that provides Java language bindings to the Qt <span class="caps">API</span>s. The bindings are generated by inspection of the C++ header files of the Qt implementation then emitting code to provide the necessary <span class="caps">JNI</span> (Java Native Interface) and *.java files to provide linkage to Java. An application programmer using Qt Jambi would simply add the *.jar files to their Java project to be able to develop and deploy their application.
= Qt Jambi =


The bindings implement such things as signal/slot mechanics for Java and cross-thread marshaling of an event driven programming model. Indeed the <span class="caps">API</span> presented to the Java programmer is very similar to the C++ <span class="caps">API</span>s so your knowledge of C++ can largely be transferred to Java. These alternative programming models maybe considered a new and refreshing choice for application developers looking for an alternative to the strict static type programming patterns employed by other Java UI toolkits. Qt Jambi makes use of Java reflection and can integrate with the QMetaObject system (that provides similar reflection mechanism to C++). However it does not preclude the use of any Java patterns from your application design Qt Jambi provides additional ways to program java.
This is a community maintained project ('qtjambi-community') that provides Java language bindings to the Qt APIs. The bindings are generated by inspection of the C++ header files of the Qt implementation then emitting code to provide the necessary JNI (Java Native Interface) and '''.java files to provide linkage to Java. An application programmer using Qt Jambi would simply add the'''.jar files to their Java project to be able to develop and deploy their application.


There is much overlap with some Qt modules with already existing Java <span class="caps">API</span>s and 3rd party libraries. Qt Jambi does not inhibit or restrict the implementation of a feature you choose to use. Some of the strengths of Qt to Java are in the cross-platform UI toolkit, the programming model, UI scripting support, embedded web browser support.
The bindings implement such things as signal/slot mechanics for Java and cross-thread marshaling of an event driven programming model. Indeed the API presented to the Java programmer is very similar to the C++ APIs so your knowledge of C++ can largely be transferred to Java. These alternative programming models maybe considered a new and refreshing choice for application developers looking for an alternative to the strict static type programming patterns employed by other Java UI toolkits. Qt Jambi makes use of Java reflection and can integrate with the QMetaObject system &amp;#40;that provides similar reflection mechanism to C+''&amp;#41;. However it does not preclude the use of any Java patterns from your application design Qt Jambi provides additional ways to program java.
<br />There is much overlap with some Qt modules with already existing Java APIs and 3rd party libraries. Qt Jambi does not inhibit or restrict the implementation of a feature you choose to use. Some of the strengths of Qt to Java are in the cross-platform UI toolkit, the programming model, UI scripting support, embedded web browser support.
<br />The qtjambi-community source project integrates with all Qt versions between 4.5 and 4.8'', this includes, 4.6 and 4.7. Work on Qt5 is planned but not until the release of 5.1 where Qt on the desktop will get attention. One aspect of the project is that due to the generation technique bug fixes applied to the project can still be used with all supported Qt versions, there is no need to back-port such fixes. Simply rebuild the project against the version of Qt you wish to use.


The qtjambi-community source project integrates with all Qt versions between 4.5 and 4.8+, this includes, 4.6 and 4.7. Work on Qt5 is planned but not until the release of 5.1 where Qt on the desktop will get attention. One aspect of the project is that due to the generation technique bug fixes applied to the project can still be used with all supported Qt versions, there is no need to back-port such fixes. Simply rebuild the project against the version of Qt you wish to use.
Another feature of the project is that it is possible to reuse your custom C++ QWidget's and other QPlugins with Qt Jambi. If your objects expose QMetaObject they may simply work as the java bindings are able to invoke and integrate with QMetaObject. Alternatively you can use the generator (provided in the Qt Jambi project) to expose Java API bindings for your custom plugins, an example of this is provided in the project sources. This allows you to combine the benefit of C++ performance in areas where it is needed with the rapid application development enjoyed by Java developers.


Another feature of the project is that it is possible to reuse your custom C++ QWidget’s and other QPlugins with Qt Jambi. If your objects expose QMetaObject they may simply work as the java bindings are able to invoke and integrate with QMetaObject. Alternatively you can use the generator (provided in the Qt Jambi project) to expose Java <span class="caps">API</span> bindings for your custom plugins, an example of this is provided in the project sources. This allows you to combine the benefit of C++ performance in areas where it is needed with the rapid application development enjoyed by Java developers.
The Community website for Qt Jambi can be found at &quot;Qt Jambi Community's website.&quot;:http://qt-jambi.org


The Community website for Qt Jambi can be found at [http://qt-jambi.org Qt Jambi Community’s website.] ''[qt-jambi.org]''
The Community bug tracker: &quot;Qt Jambi Community bug tracker&amp;quot;:http://redmine.smar.fi/projects/qtjambi/issues


The Community bug tracker: [http://redmine.smar.fi/projects/qtjambi/issues Qt Jambi Community bug tracker] ''[redmine.smar.fi]''
The Community patch submission: &quot;Qt Jambi Community gerrit&amp;quot;:http://gerrit.smar.fi/#/q/status:open+project:qtjambi-community,n,z


The Community patch submission: [http://gerrit.smar.fi/#/q/status:open+project:qtjambi-community,n,z Qt Jambi Community gerrit] ''[gerrit.smar.fi]''
== Qt Jambi past ==


==Qt Jambi past==
Before March 2009 the project ('qt-jambi') was maintained and released by Trolltech, their latest release was Qt Jambi 4.5.2_01 based on a port of Qt 4.5.2. This is last version by the Qt team (based at Trolltech). When Nokia purchased Trolltech the Qt Jambi project was not put into the future road map so the work was spun off into the open source project. The source code project that is called 'qt-jambi' is from this pre March 2009 era and does not support any version of Qt 4.7 or later.


Before March 2009 the project (‘qt-jambi’) was maintained and released by Trolltech, their latest release was Qt Jambi 4.5.2_01 based on a port of Qt 4.5.2. This is last version by the Qt team (based at Trolltech). When Nokia purchased Trolltech the Qt Jambi project was not put into the future road map so the work was spun off into the open source project. The source code project that is called ‘qt-jambi’ is from this pre March 2009 era and does not support any version of Qt 4.7 or later.
== Binaries ==


==Binaries==
&quot;Qt Jambi Community Releases&amp;quot;:http://qt-jambi.org/downloads


[http://qt-jambi.org/downloads Qt Jambi Community Releases] ''[qt-jambi.org]''
== Old Binaries (not maintained since March 2009) ==


==Old Binaries (not maintained since March 2009)==
&quot;Qt Jambi 4.5.2_01Binary for Windows 32-bit&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-win32-lgpl-4.5.2_01.zip<br />&quot;Qt Jambi 4.5.2_01Binary for Windows 64-bit&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-win64-lgpl-4.5.2_01.zip<br />&quot;Qt Jambi 4.5.2_01Binary for Mac&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-mac-lgpl-4.5.2_01.tar.gz<br />&quot;Qt Jambi 4.5.2_01Binary for Linux/X11 32-bit&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-linux32-lgpl-4.5.2_01.tar.gz<br />&quot;Qt Jambi 4.5.2_01Binary for Linux/X11 64-bit&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-linux64-lgpl-4.5.2_01.tar.gz


[http://get.qt.nokia.com/qtjambi/source/qtjambi-win32-lgpl-4.5.2_01.zip Qt Jambi 4.5.2_01Binary for Windows 32-bit] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-win64-lgpl-4.5.2_01.zip Qt Jambi 4.5.2_01Binary for Windows 64-bit] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-mac-lgpl-4.5.2_01.tar.gz Qt Jambi 4.5.2_01Binary for Mac] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-linux32-lgpl-4.5.2_01.tar.gz Qt Jambi 4.5.2_01Binary for Linux/X11 32-bit] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-linux64-lgpl-4.5.2_01.tar.gz Qt Jambi 4.5.2_01Binary for Linux/X11 64-bit] ''[get.qt.nokia.com]''
== Old Eclipse Integation (not maintained since March 2009) ==


==Old Eclipse Integation (not maintained since March 2009)==
&quot;Qt Jambi 4.5.2_01 for Linux/X11 32-bit&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-linux32-4.5.2_01.tar.gz<br />&quot;Qt Jambi 4.5.2_01 for Windows&amp;quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-win32-4.5.2_01.zip


[http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-linux32-4.5.2_01.tar.gz Qt Jambi 4.5.2_01 for Linux/X11 32-bit] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-win32-4.5.2_01.zip Qt Jambi 4.5.2_01 for Windows] ''[get.qt.nokia.com]''
== Old Source Package (not maintained since March 2009) ==


==Old Source Package (not maintained since March 2009)==
&quot;Qt Jambi 4.5.2_01 Source Package (tar.gz)&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.tar.gz<br />&quot;Qt Jambi 4.5.2_01 Source Package (zip)&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.zip


[http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.tar.gz Qt Jambi 4.5.2_01 Source Package] ''[get.qt.nokia.com]''<br />[http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.zip Qt Jambi 4.5.2_01 Source Package] ''[get.qt.nokia.com]''
== Repository ==


==Repository==
&quot;http://qt.gitorious.org/qt-jambi/qtjambi-community&amp;quot;:http://qt.gitorious.org/qt-jambi/qtjambi-community ''this source tree is actively being developed''


http://qt.gitorious.org/qt-jambi/qtjambi-community ''[qt.gitorious.org]'' ''this source tree is actively being developed''
&quot;http://qt.gitorious.org/qt-jambi/qt-jambi&amp;quot;:http://qt.gitorious.org/qt-jambi/qt-jambi ''this source tree has not been maintained since March 2009''


http://qt.gitorious.org/qt-jambi/qt-jambi ''[qt.gitorious.org]'' ''this source tree has not been maintained since March 2009''
== Ubuntu (PPA from Launchpad) ==


==Ubuntu (<span class="caps">PPA</span> from Launchpad)==
It is best to read download and install instructions in PPA description at:


It is best to read download and install instructions in <span class="caps">PPA</span> description at:
&quot;Qt Jambi Snaphosts for Ubuntu&amp;quot;:http://launchpad.net/~qtjambi-community/+archive/libqtjambi-snapshots


[http://launchpad.net/~qtjambi-community/+archive/libqtjambi-snapshots Qt Jambi Snaphosts for Ubuntu] ''[launchpad.net]''
This tries to cover all recent Ubuntu releases and LTS releases that are compatible with Qt Jambi project.


This tries to cover all recent Ubuntu releases and <span class="caps">LTS</span> releases that are compatible with Qt Jambi project.
== OBS (OpenSuSE build system, including Fedora/Red Hat/CentOS and SLS/OpenSuSE) ==


==<span class="caps">OBS</span> (OpenSuSE build system, including Fedora/Red Hat/CentOS and <span class="caps">SLS</span>/OpenSuSE)==
&quot;Qt Jambi Snapshots for Linux&amp;quot;:https://build.opensuse.org/package/show?package=qtjambi-snapshots&amp;amp;project=home:dlmiles:qtjambi-community


[https://build.opensuse.org/package/show?package=qtjambi-snapshots&project=home:dlmiles:qtjambi-community Qt Jambi Snapshots for Linux] ''[build.opensuse.org]''
See OBS wiki and documentation for how to add a custom repository to your distribution. Then you can download, update and install via your Linux package manager.


See <span class="caps">OBS</span> wiki and documentation for how to add a custom repository to your distribution. Then you can download, update and install via your Linux package manager.
== Mailing List ==


==Mailing List==
&quot;Qt-jambi-interest Archives and Subscription&amp;quot;:http://lists.qt.nokia.com/mailman/listinfo/qt-jambi-interest


[http://lists.qt.nokia.com/mailman/listinfo/qt-jambi-interest Qt-jambi-interest Archives and Subscription] ''[lists.qt.nokia.com]''
== See also ==


==See also==
This page describes the Java bindings. There is also QtScript which is the JavaScript bindings. Similar sounding technologies, but very different :)
 
This page describes the Java bindings. There is also QtScript which is the JavaScript bindings. Similar sounding technologies, but very different <span class="smiley">:)</span><br /> See http://qt.gitorious.org/qt-labs/qtscriptgenerator ''[qt.gitorious.org]'' for the JavaScript bindings.
 
===Categories:===
 
* [[:Category:LanguageBindings|LanguageBindings]]
** [[:Category:LanguageBindings::QtJambi|QtJambi]]

Revision as of 14:37, 23 February 2015


Qt Jambi

This is a community maintained project ('qtjambi-community') that provides Java language bindings to the Qt APIs. The bindings are generated by inspection of the C++ header files of the Qt implementation then emitting code to provide the necessary JNI (Java Native Interface) and .java files to provide linkage to Java. An application programmer using Qt Jambi would simply add the.jar files to their Java project to be able to develop and deploy their application.

The bindings implement such things as signal/slot mechanics for Java and cross-thread marshaling of an event driven programming model. Indeed the API presented to the Java programmer is very similar to the C++ APIs so your knowledge of C++ can largely be transferred to Java. These alternative programming models maybe considered a new and refreshing choice for application developers looking for an alternative to the strict static type programming patterns employed by other Java UI toolkits. Qt Jambi makes use of Java reflection and can integrate with the QMetaObject system &#40;that provides similar reflection mechanism to C+&#41;. However it does not preclude the use of any Java patterns from your application design Qt Jambi provides additional ways to program java.
There is much overlap with some Qt modules with already existing Java APIs and 3rd party libraries. Qt Jambi does not inhibit or restrict the implementation of a feature you choose to use. Some of the strengths of Qt to Java are in the cross-platform UI toolkit, the programming model, UI scripting support, embedded web browser support.
The qtjambi-community source project integrates with all Qt versions between 4.5 and 4.8, this includes, 4.6 and 4.7. Work on Qt5 is planned but not until the release of 5.1 where Qt on the desktop will get attention. One aspect of the project is that due to the generation technique bug fixes applied to the project can still be used with all supported Qt versions, there is no need to back-port such fixes. Simply rebuild the project against the version of Qt you wish to use.

Another feature of the project is that it is possible to reuse your custom C++ QWidget's and other QPlugins with Qt Jambi. If your objects expose QMetaObject they may simply work as the java bindings are able to invoke and integrate with QMetaObject. Alternatively you can use the generator (provided in the Qt Jambi project) to expose Java API bindings for your custom plugins, an example of this is provided in the project sources. This allows you to combine the benefit of C++ performance in areas where it is needed with the rapid application development enjoyed by Java developers.

The Community website for Qt Jambi can be found at "Qt Jambi Community's website.":http://qt-jambi.org

The Community bug tracker: "Qt Jambi Community bug tracker&quot;:http://redmine.smar.fi/projects/qtjambi/issues

The Community patch submission: "Qt Jambi Community gerrit&quot;:http://gerrit.smar.fi/#/q/status:open+project:qtjambi-community,n,z

Qt Jambi past

Before March 2009 the project ('qt-jambi') was maintained and released by Trolltech, their latest release was Qt Jambi 4.5.2_01 based on a port of Qt 4.5.2. This is last version by the Qt team (based at Trolltech). When Nokia purchased Trolltech the Qt Jambi project was not put into the future road map so the work was spun off into the open source project. The source code project that is called 'qt-jambi' is from this pre March 2009 era and does not support any version of Qt 4.7 or later.

Binaries

"Qt Jambi Community Releases&quot;:http://qt-jambi.org/downloads

Old Binaries (not maintained since March 2009)

"Qt Jambi 4.5.2_01Binary for Windows 32-bit&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-win32-lgpl-4.5.2_01.zip
"Qt Jambi 4.5.2_01Binary for Windows 64-bit&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-win64-lgpl-4.5.2_01.zip
"Qt Jambi 4.5.2_01Binary for Mac&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-mac-lgpl-4.5.2_01.tar.gz
"Qt Jambi 4.5.2_01Binary for Linux/X11 32-bit&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-linux32-lgpl-4.5.2_01.tar.gz
"Qt Jambi 4.5.2_01Binary for Linux/X11 64-bit&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-linux64-lgpl-4.5.2_01.tar.gz

Old Eclipse Integation (not maintained since March 2009)

"Qt Jambi 4.5.2_01 for Linux/X11 32-bit&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-linux32-4.5.2_01.tar.gz
"Qt Jambi 4.5.2_01 for Windows&quot;:http://get.qt.nokia.com/qtjambi/source/qtjambi-eclipse-integration-win32-4.5.2_01.zip

Old Source Package (not maintained since March 2009)

"Qt Jambi 4.5.2_01 Source Package (tar.gz)":http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.tar.gz
"Qt Jambi 4.5.2_01 Source Package (zip)":http://get.qt.nokia.com/qtjambi/source/qtjambi-src-lgpl-4.5.2_01.zip

Repository

"http://qt.gitorious.org/qt-jambi/qtjambi-community&quot;:http://qt.gitorious.org/qt-jambi/qtjambi-community this source tree is actively being developed

"http://qt.gitorious.org/qt-jambi/qt-jambi&quot;:http://qt.gitorious.org/qt-jambi/qt-jambi this source tree has not been maintained since March 2009

Ubuntu (PPA from Launchpad)

It is best to read download and install instructions in PPA description at:

"Qt Jambi Snaphosts for Ubuntu&quot;:http://launchpad.net/~qtjambi-community/+archive/libqtjambi-snapshots

This tries to cover all recent Ubuntu releases and LTS releases that are compatible with Qt Jambi project.

OBS (OpenSuSE build system, including Fedora/Red Hat/CentOS and SLS/OpenSuSE)

"Qt Jambi Snapshots for Linux&quot;:https://build.opensuse.org/package/show?package=qtjambi-snapshots&amp;project=home:dlmiles:qtjambi-community

See OBS wiki and documentation for how to add a custom repository to your distribution. Then you can download, update and install via your Linux package manager.

Mailing List

"Qt-jambi-interest Archives and Subscription&quot;:http://lists.qt.nokia.com/mailman/listinfo/qt-jambi-interest

See also

This page describes the Java bindings. There is also QtScript which is the JavaScript bindings. Similar sounding technologies, but very different :)