快速业务通道

实时Java,第5部分 - 编写和部署实时Java应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
析来维护 Java 兼容性。

请阅读 “实时 Java,第 2 部分: 比较编译技术”,进一步了解 JIT 编译器用于执行优化的技术、JIT 和 AOT 各自的优缺点,以及两者的对比。

生成预先编译的代码

AOT 编译工具 jxeinajar 会从以 JAR 或 ZIP 文件格式存储的类生成本地代码。该工具可以创建 AOT 编译的代码,可以是为各 JAR 文件的类中的所有方法,也可以是为一个固定的方法集合。如果 JIT 使用了一种固定的优化级别,那么 AOT 编译的代码就等同于 JIT 编译器生成的本地代码。代码以称为 Java eXEcutable(JXE)的内部格式存储。jxeinajar 工具将 JXE 文件包装在一个 JAR 文件中,WebSphere Real Time 随后即可执行此文件。

AOT 编译是一个分两阶段的过程。第一步,AOT 代码生成(使用 jxeinajar 工具),使用 AOT 编译器生成本地代码。第二步,在 Java Runtime Environment(JRE)内执行这些代码。

以下命令(其中的 aotJarPath 是希望将预先编译的文件写入其中的目录)为当前目录中的所有 JAR 或 ZIP 文件创建 AOP 编译的代码,假定 $JAVA_HOME/bin 位于 $PATH上:

jxeinajar -Xrealtime -outPath aotJarPath

执行此命令后,您将看到如下输出:

J9 Java(TM) jxeinajar 2.0 Licensed Materials - Property of IBM (c) Copyright IBM Corp. 1991, 2006 All Rights Reserved IBM is a registered trademark of IBM Corp. Java and all Java-based marks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. Searching for .jar files to convert Found /home/rtjaxxon/demo.jar Searching for .zip files to convert Converting files Converting /home/rtjaxxon/demo.jar into /home/rtjaxxon/aot///demo.jar JVMJ2JX002I Precompiled 3098 of 3106 method(s) for target ia32-linux. Succeeded to JXE jar file /home/rtjaxxon/demo.jar Processing complete Return code of 0 from jxeinajar

所创建的 JAR 文件并非真正的 JAR。它也不 包含类文件。与此不同,它包含用于所有类和占位符类文件的 JXE 文件,用于访问本地代码。这些文件无法为其他 Java 运行时所用,是 WebSphere Real Time 的这个版本专用的。

可在命令行中指定单个的 JAR 或 ZIP 文件,来重写默认行为。如果要将输入文件的搜索扩展为包含子目录,可向命令中添加 -recurse 选项。

实时Java,第5部分 - 编写和部署实时Java应用程序(5)

时间:2011-06-22 Caroline Gough

识别预先编译的文件

jxeinajar 工具提供的文件格式包含一个 JXE 文件,还有对该 JXE 文件内各类文件的指针。通过列举 JAR 或 ZIP 文件的内容,您就可以迅速识别出,该文件是否由 jxeinajar 工具生成。如果希望查看 demo.jar,那么列出其内容的命令是:

jar vtf demo.jar

jxeinajar 生成的 JAR 文件提供如下输出:

0 Thu Apr 19 13:59:14 CDT 2006 META-INF/ 71 Thu Apr 19 13:59:14 CDT 2006 META-INF/MANIFEST.MF 68 Thu Apr 19 13:59:14 CDT 2006 demo.class 4119 Thu Apr 19 13:59:14 CDT 2006 jxe22A6B69D-010D-1000-8001-810D22A6B69D.class

JAR 文件内的另一个 JXE 文件将其标识为 jxeinajar 工具生成的 JAR 文件。否则,输出应如下所示:

0 Thu Apr 19 09:00:01 CDT 2006 META-INF/ 71 Thu Apr 19 09:00:01 CDT 2006 META-INF/MANIFEST.MF 846 Thu Apr 19 09:00:01 CDT 2006 demo.class

执行预先编译的代码

对您的应用程序进行了 AOT 编译之后,就可以使用此命令来运行它了:

java -Xrealtime -Xnojit -classpath aotJarPath AppName

切记,在 WebSphere Real Time 中,动态 JIT 编译和 AOT 编译无法混合使用。如果您忽略了 -Xnojit 选项,那么

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号