我正在使用 Windows 7、Enterprise Architect (EA) 6.5 和 32 位 Java 1.6.0_22
我正在尝试生成一个序列图建模外部运行的 java 程序。现在我一直在使用通过命令行运行的虚拟 java 类来查看是否可行。我已将 java 类的源目录导入 EA。Package Build Scripts->Debug 设置为“附加”以附加到外部进程。
我的 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 中“使用代码同步模型”、“重建”,我还尝试过重建和重新导入整个源目录。没有任何帮助。有什么想法我可能做错了吗?
任何帮助将不胜感激,因为我已经为此浪费了几天时间。
谢谢!