快速业务通道

使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
分析。例如清单 4:

清单 4. 输出结果示例

BEAM_VERSION=3.4.0 BEAM_ROOT=D:\Work\class\beam BEAM_DIRECTORY_WRITE_INNOCENTS=D:\Work\class\beam\beam_data\innocent1 BEAM_DIRECTORY_WRITE_ERRORS=D:\Work\class\beam\beam_data\errors1 -- ERROR2   /*operating on NULL*/    >>>ERROR2_foo_55479ec82b606 "Example.java", line 11: invalid operation involving NULL pointer ONE POSSIBLE PATH LEADING TO THE ERROR: "Example.java", line 2: loop entry condition is true "Example.java", line 5: the if-condition is true "Example.java",line 8: the if-condition is true(used as evidence that  error is possible) "Example.java", line 11: using operation `[]'' to dereference NULL  pointer `p'' VALUES AT THE END OF THE PATH: p = 0

使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门(3)

时间:2011-05-07 IBM 丁钦浩

配置并运行

BEAM 目前多用于 Linux/AIX 平台上对 C 和 C++ 语言的检查分析,而在最常用的 Windows 平台上使用其对 Java 进行静态分析的人不多,因此经验不足,文档匮乏。本文接 下来就介绍如何在 Windows 平台上运行这个工具对 Java 代码进行分析。

与大多数工具一样,BEAM 可以以多种方式运行 —— 命令行、使用 Ant 或作为 Eclipse 插件程序。本文将只介绍使用 Ant 运行。

安装 BEAM

BEAM 当前最新版本是 3.4.2,而且支持 Windows 2000 及其以上版本。本文假设您将其 安装到 C:\BEAM-3.4.2 下。

下载并安装 ActivePerl

在这个工具的 bin 目录下有些 Perl 脚本(比如 beam_configure),所以需要 5.004 或以上版本的 Perl 解释器去解释。本文假设您把 ActivePerl 安装到 C:\Perl 目录下。

运行 beam_configure 脚本生成 Java 编译器配置文件

这个工具是为了尽可能多地匹配本地 Java 编译器 javac 的行为,需要通过一个 TCL 格式的编译器配置文件去了解本地 javac 的环境。这个编译器配置文件中包括当前 Java 语言的版本(如 1.4),默认的根类路径(如 jre\lib\core.jar)和默认的 Classpath 等 信息。

TCL 格式的编译器配置文件是通过 Perl 脚本 beam_configure 检查本地 Java 编译器 javac 后,使用检查结果自动生成的,如清单 5:

清单 5. 生成 Java 编译器配置文件

C:\Perl\bin\perl     "C:\BEAM-3.4.2\bin\beam_configure"     --java D:\Tools\Work\ibm-sdk\bin\javac     -o my_config.tcl

C:\Perl\bin\perl:Perl 解释器的绝对路径。

C:\BEAM-3.4.2\bin\beam_configure:Perl 脚本 beam_configure 的绝对路径。

--java:表明接下来的编译器是 Java 编译器。

D:\Tools\Work\ibm-sdk\bin\javac:本地 Java 编译器 javac 的绝对路径。

-o:是 output 的意思,表明将配置信息输出到接下来指定的文件中。

my_config.tcl 就是最终生成的 Java 编译器配置文件,名字可以任意,但是由于接下 来要使用,所以需要记住这个名字。运行完此命令,当前目录下就生成了 my_config.tcl。 本文假设您把 my_config.tcl 放在 D:\Work\Beam\Java\ 下。

使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门(4)

时间:2011-05-07 IBM 丁钦浩

注意:需要修改 beam_configure 脚本中的一行代码才能成功运行生成 TCL 文件。

my $tmpdir = "/tmp/beam_config.$." . int(rand  1000000);

改成:

my $tmpdir = "c:/temp/beam_config.$." .  int(rand 1000000);

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号