
Qt Jambi可在Linux、Mac OS X 和Windows 上以预编译或者源代码软件包的方式获得。要安装Qt Jambi ,需要有Java 1.5 或者更高版。
取决于你是下载咯一个预编译软件包还是一个源代码包,这个安装过程是不同的。这个安装向导分小节来说明两种不同的方法。
希望你喜欢!
解压缩咯软件包之后,你就可以运行启动器 (Launcher)咯,它是一个用来启动Qt Jambi 自带的示例和演示程序的程序。
要在 Windows 上运行示例和演示程序启动器,就运行这个:
qtjambi.exe
在Linux 和Mac OS X 上运行这个:
qtjambi.sh
运行这些文件将会验证虚拟机的版本并且为Qt Jambi 程序的运行而设置正确的环境。
当你准备发布你自己的程序时,就去查看 部署 文档。
要手动启动那些程序,你需要在你的类路径(classpath)里包含以下 .jar 文件:
•. qtjambi-4.4.0_01.jar,其中包含咯那些Jambi 类。
•.与平台相关的包,其中包含咯Qt Jambi 使用的本地 (native) 库 。这 个包是以操作系统及用来构建这些库的编译器的名字来命名的 ;例如,针对Windows 和MSVC 2005 ,就是 qtjambi-win32-msvc2005-4.4.0_01.jar 。
•.要运行那些示例或者启动器本身,类路径还必须包含qtjambi-examples-4.4.0_01.jar 。
这3个文件都位于Qt Jambi 的安装目录里。下面针对每个操作系统给出一个例子:
// Linux
java -cp qtjambi-4.4.0_01.jar:qtjambi-linux32-gcc-4.4.0_01.jar:qtjambi-examples-4.4.0_01.jar com.trolltech.launcher.Launcher
// Mac OS X
java -XstartOnFirstThread -cp qtjambi-4.4.0_01.jar:qtjambi-macosx-gcc-4.4.0_01.jar:qtjambi-examples-4.4.0_01.jar com.trolltech.launcher.Launcher
// Windows
java -cp qtjambi-4.4.0_01.jar;qtjambi-win32-msvc2005-4.4.0_01.jar;qtjambi-examples-4.4.0_01.jar com.trolltech.launcher.Launcher
注意 : 在 Mac 上运行一个Qt Jambi 程序时 ,必须将 -XstartOnFirstThread 参数传递给Java 命令。
就像前面说的那样,Jambi从平台软件包(在它已经包含到类路径的情况下)里载入原始库。
另外一种载入原始库的方法就是依赖Java 的标准载入方法。可通过下面2种方法之1来实现:指定JVM 系统属性 -Djava.library.path=[到库的路径]或者在以下环境变量中包含它们的路径 :
|
平台 |
说明 |
|
Windows |
设置PATH 环境变量,使之包含Qt Jambi 目录下的bin 目录。 |
|
Linux |
设置LD_LIBRARY_PATH 环境变量,使之包含Qt Jambi 目录下的lib 目录。 |
|
Mac OS X |
设置DYLD_LIBRARY_PATH 环境变量,使之包含Qt Jambi 目录下的lib 目录。 |
注意,指向庫的路径需要是它些变量中的第一个路径。否則的話 ,Jambi可能会找到其它不兼容的版本的庫。例如,在 Linux 上 ,/usr/lib中的libQtCore.4.so 這个庫是默諗位于LD_LIBRARY_PATH 中的 。
Qt 的某些功能是通過原始插件載入的。這包括对JPEG 图片的支持。這些插件是放在Qt Jambi 的安装目彔里的 plugins 目彔里的 。
Qt Jambi从QT_PLUGIN_PATH 環境变量中的目彔里查找插件(在没有使用与平台相关的軟件包的情况下)。所以你应當将QT_PLUGIN_PATH 指向 plugins 目彔 。
然后你就可以运行Qt Jambi 程序咯。下面是手动运行启动器的示例:
java -cp qtjambi-4.4.0_01.jar:qtjambi-examples-4.4.0_01.jar com.trolltech.launcher.Launcher
這一小节講的是怎麽用源代碼來編译安装Qt Jambi。首先我 們说一说如何配置你的系统,再來講述使用命令行來編译Qt Jambi 的過程 。最后,我 們看看一些常见的安装問題。
注意Qt Jambi 源代碼包也依賴Qt 源代碼包。为咯避免可能存在的二遘制不兼容的問題 ,我 們强烈建议你在編译Qt Jambi 之前重新編译Qt。在 Mac OS X 上 ,Qt必須配置成不使用框架(frameworks) (在运行 configure 脚本時指定--no-framework選項) 。
除咯Qt 源代碼之外,你還需要JDK 1.5 或更高版以及构建工具 ant 。
第一步就是为Qt Jambi 而构建Qt。一般地 ,按常規方法來构建Qt 就可以工作,但是也有一些例外 。对于在任何给定的系统中构建Qt 的细节 ,可以去看Qt 的安装向导。
|
平台情况 |
注意事项 |
|
全部 |
使用-D QT_JAMBI_BUILD选项可以在Qt 中为Qt Jambi 而开启或关闭某些特性。Qt Jambi也不需要Qt 3 的支持库, 所以建议使用-no-qt3support参数來编译。 |
|
Mac OS X |
Qt Jambi只支持使用-no-framework参数配置过的Qt,并且由于兼容性的原因建议以 10.4 SDK 为目标来配置Qt , -sdk /Developer/SDKs/MacOSX10.4u.sdk |
|
Linux |
Sun的Java虚擬机有个问题,使得它不能使用MMX 和SSE 指 令。当你要将程序与1.5 版本的Java 运行时环境一起部署时 ,使用这些参数 -no-mmx -no-sse -no-sse2 -no-3dnow 来配置Qt 以避免问题。另外,由于Qt Jambi要求Qt 的头文件和库都放置在相对于QTDIR 的位置,Qt应当以参数-prefix $PWD来配置,此时并没有安装。 |
|
Windows (MSVC 2005或更新版) |
为咯让插件能正常地载入 ,需要-plugin-manifests参数。 |
下面的表格描述咯安装Qt Jambi 时必要的环境变量。
|
QTDIR |
这个变量必须包含已安装的Qt 的目录路径。 |
|
JAVA_HOME |
这个变量必须包含已安装的 Java 的目录路径。 |
Qt Jambi提供咯一个ant 任务,它将处理在构建Qt Jambi 库时的所有任务 。要想从头开始构建Qt Jambi ,就在Jambi 的安装目录里运行ant ,不带任何参数。
> ant
在 Qt Jambi 的目录里。请注意,Qt Jambi需要ant 的ant-trax 模块,而这个模块在某些linux 发行版里是可选的 。运行 ant 会自动进行以下步骤:
•.编译Qt Jambi 生成器
•.根据由$QTDIR指定的Qt 来生成Qt Jambi 库
•.编译Juic 工具
•.编译并且打包那些原始库
•.编译并且打包那些类库
•.针对那些示例运行Juic
•.编译并且打包那些示例
要想看到在ant 构建过程中的那些子目标的描述,你可以这样做:
> ant -projecthelp
要想看到那些在构建过程中的配置信息的描述,你可以这样做:
> ant help
如果你在编译和运行Qt Jambi 的时候有甚麽问题,可以看看我们准备的一个常见问题列表。这个表格应当足够解决大部分问题;如果还是不行的话 ,试试找个砖家问问。可以先看看Jambi 常见问题列表 。在Jambi 邮件列表上 ,可以向活跃的Jambi 用户和Jambi 开发团队询问关于安装的问题;如果Qt Jambi 在载入原始库的时候失败咯 ,那么 请设置好 com.trolltech.qt.verbose-loading 这个 系统属性 再运行Qt Jambi ,以便给出调用栈的跟踪报告。
在这一小节,我们试着收集在构建Qt Jambi 时的常见问题 。它们都列在一个表格中 ,一列是问题的描述,另一列是解决方法。
|
问题 |
解决方法 |
|
在 Linux 上, gcj (GNU 的Java 编译器) 位于 /usr/bin ;指向正确的java 版本的路径必须在PATH 中位于这个之前 。这个问题通常引起 java.lang.ClassFormatError 错误 。 |
确保在PATH 中的是正确的java 可执行程序。 |
|
环境变量设置不正确。 |
|
|
Qt Jambi使用Qt 头文件来生成从c++到java 的映射。除非是以默认设置来构建Qt 的 ,否则你将可能在绑定原始库以外的库的时候遇到链接错误。 |
以默认设置来构建Qt。 |
|
juic不会更新那些没有修改过的.jui文件,这在Java 源代码被删除时可能导致问题 。 |
带着-a选项来运行juic。 |
|
Qt Jambi预期Qt 是在关掉调试信息的情况下编译的。如果在构建Qt的时候打开咯调试选项,那么就找不到库。 |
在设置咯com.trolltech.qt.debug 这个系统属性的情况下运行Qt Jambi。 |
|
Qt Jambi试图使用错误的编译器 |
在Windows 系统中,当MSVC 和MinGW 编译器都安装咯的时候,可能发生这个错误。你可以设置QMAKESPEC 变量。请参考qmake 文档 以了解细节。 |
如果Jambi 没能找到那些原始库,那么你会遇到 java.lang.UnsatisfiedLinkError 或者其它与载入相关的错误。我们在下面列出查找路径。它们是按照Jambi 查找库的顺序列出来的 。
•.com.trolltech.qt.library-path 这个系统属性。
•.类路径(包括jar 文件)。
•.Jambi 软件包结构的根目录(即 , Qt Jambi 的安装目录 )下的lib (Mac OS X和Linux)或者 bin (Windows)子目录。
•.java.library.path 这个系统属性,在Linux上 被设置为LD_LIBRARY_PATH,Windows 上是PATH,Mac OS X 上是DYLD_LIBRARY_PATH。
我们现在快速地看一看特定平台的问题。
|
平台 |
注意事项 |
|
Mac OS X |
在运行一个Qt Jambi 程序时,必须将-XstartOnFirstThread参数传递给Java 可执行程序。另外,如果你使用的是源代码包,那么你必须用--no-framework选项来编译Qt 。 |
|
Linux/64位 |
安装一个32位的虚拟机,例如,在Ubuntu上,安装 ia32-sun-java5-bin 软件包并且将 /usr/lib/jvm/ia32-java-1.5.0-sun-1.5.0.06/jre/bin 添加到 PATH 环境变量中 。 |
Qt 设计师是一个用于设计和构建用户界面的可视化工具。如果你使用的是预编译的软件包,那么你可以使用 designer.bat 或者 designer.sh 脚本来从命令行启动它 。 Eclipse整合 会自动处理设计师的相关事项 。
你可以在Qt设计师文档中找到更多信息。
生成器是一个Qt程序,它可以用来将基于C++的Qt API映射到等价的Java API。Qt Jambi软件包中提供咯一个关于如何使用Qt Jambi生成器的示例,放在 到/Qt Jambi/的路径/generator_example 目录中 。
要从源代码包中构建那个生成器示例,只需要简单地这样做:
ant -f build_generator_example.xml
警告 : Qt Jambi 生成器是用来处理基于Qt 的源代码的 ,不适合于对普通的C++库进行映射 。
HxLauncher: Launch Android applications by voice commands