我使用的是Windows 7,Enterprise Architect(EA)6.5和32位Java 1.6.0_22
我正在尝试生成一个外部运行java程序的序列图建模 . 现在我一直在使用通过命令行运行的虚拟java类来查看是否可行 . 我已将java类的源目录导入EA . 包构建脚本 - >调试设置为“附加”以附加到外部进程 .
我的java类是通过cmd编译和运行的,启动后等待用户输入,这让我有时间将EA附加到它上面 . 我运行并编译java程序:
javac -g ClassName.java
// ^ -g生成调试信息,使EA“快乐”
java -agentpath:"path_to_SSJavaProfiler65" ClassName
// ^ agentpath允许EA附加到进程//注意:程序必须使用32位版本的java运行,否则EA不会找到它 .
运行java程序后等待我的输入 . 在EA中我右键单击已启动程序的方法 - >生成序列图
此时,EA弹出一个窗口,要求我选择要附加的进程 . 我选择了正确的,EA附加到它,在系统输出中打印出来:
06/10/2011 14::43 debug starts for C:\Program Files (x86)\Java\jdk1.6.0_22\bin\java.exe
// ^进程运行我的java程序
输入java程序后输入允许它继续进行,EA为该方法生成一个漂亮的序列图 - >正是我想要的 . 当我尝试通过调试器生成图表时出现问题,这应该允许我模拟多个方法的行为 .
为此,我以与以前相同的方式启动java程序,当它查询我到EA的输入时,右键单击已启动程序的包(这是设置包脚本的地方) - >构建并运行 - >调试运行 . 我再次选择要附加的进程 . 我得到确认它成功了 . 我输入我的java程序的输入以允许它继续,并且当EA产生错误消息时:
Source file path loaded in module doesnt match, please rebuild
我尝试过从cmd级别和EA中“同步模型与代码”,“重建”,我也尝试重建并重新导入整个源目录 . 没有任何帮助 . 我有什么想法可能做错了吗?
任何帮助都会受到高度赞赏,因为我已经浪费了几天时间 .
谢谢!