jTracert 是一个能够在 Java 程序运行期自动生成 UML 时序图( Sequence Diagram )的开源工具。可以利用这个工具快速理解 / 研究别人编写的代码。快速生成文档。 这个项目可以在 http://code.google.com/p/jtracert 中找到项目相关的资料。
1 、运行 jTracert agent
jTrace 是一个精致的 javaagent ,不需要依赖第三方的 jar 包。使用 jTracert 分析 java 应用程序只需要在 VM 命令中添加如下参数: -javaagent:jTracert.jar=7007
注意:必须给 jTracert.jar 指定一个位置,例如:
-javaagent:/home/dmitrybedrin/java/jTracert.jar=7007
liu251 的测试脚本:
java -javaagent:%jTracert_HOME%/jTracert.jar=7007 -DxmlPath=lib/config.xml -Djava.library.path=lib/ -jar test.jar
%jTracert_HOME% : 已经配置在环境变量中。
7007 端口是与 jTracert GUI 通讯的端口。你可以改为其他的端口。
需要注意的是 jTracert 不仅仅能够应用于 J2SE 程序中,同时它还可以通过在 J2EE APP Server 启动命令中添加参数来分析你的 J2EE 应用,它还能够用来动态分析你的 applet 。 jTracert 是纯 java 语言实现的,所有它几乎能够适用于任何种类的 java 应用程序。
2 、运行 jTracert GUI
当在你的 java 程序中配置好 jTracert ,并且开始运行 java 程序,你会在 console 看到如下信息:
jTracert agent started Waiting for a connection from jTracert GUI on port 7007
Liu251 运行消息如下:
jTracert agent started
agent version: 0.1.3
Waiting for a connection from jTracert GUI on port 7007
这个时候你就可以通过脚本启动 jTracert GUI 程序了( Windows :运行 jtracert.cmd/ 运行 jTracert.exe ; Linux :运行 jtracert.sh ;直接在 console 中输入 :java -jar jTracert.jar )。会弹出一个对话窗口,点击 connect 按钮就可以了。(翻译部分结束)
(具体是用见下面示例)
3 、示例
在示例代码中, liu251 是把 jTracert 集成到 Eclipse 中,通过运行分析开源数据库连接池 MiniConnectionPool 的执行流程来显示 jTracert 的使用方法的。
1、 在 Eclipse 中配置 jTracert
选择 Run As/Run Configuration 配置:在 VM argument 中添加黑框中的内容:
2、 运行 java 程序
启动 java 程序之后,程序显示如下信息之后,
进入阻塞状态,等待 jTracert GUI 客户端连接。
3、 启动 jTracert GUI
jTracert GUI 是 jTracert 的客户端,将相应的地址 IP 、端口 PORT 、要分析的 java 包和类配置完成后,开始连接 jTracert java 程序。
jTracert GUI 连接成功:
4、 运行结果分析
运行结果生成的是 sequence diagram 。生成的文件后缀为 sdx ,保存后可以使用 jTracert.exe 打开。