1

我想得到eclipse中一些方法的调用链报告,所以按Ctrl++打开方法调用层次视图,按numpad_multiply键展开所有节点AltH

问题是我需要点击每个节点才能知道它属于哪个项目。

有什么方法或插件可以获取报告吗?

(我为 Web 开发人员使用 Eclipse 3.5 Galileo Java EE IDE。感谢您的任何建议)

4

2 回答 2

0

回答我的问题,我希望这对某人有所帮助。(这不是一个聪明的方法,但它对我有用。)

准备:

  1. Ctrl+Alt+H 打开方法调用层次视图,按 numpad_multiply 键展开所有节点。

  2. Ctrl+A 选择所有节点。

  3. 复制完全限定的类名,并将其保存到某处的文件中(例如 c:\tmp.txt)

  4. 删除上述文件中的所有方法名称。

    例子:

      com.test.Class1.method1(Long, String)-> com.test.Class1
    

资源:

  1. 在同一工作区中创建一个新项目(java 类型)

  2. 将目标项目引用添加到新项目

  3. 循环上述文件的每一行(例如c:\ tmp.txt),最终使用此代码获取类位置:

            /**
             * Get class file location
             * @param path : example: com.test.Class1
             * @return : example: /D:/workspace/project/target/com/test/Class1.class
             * @throws ClassNotFoundException
             */
            private static String getFileLocationByClassName(String path) 
                throws ClassNotFoundException {
                if (path == null || path.length() == 0)
                    return "";
                Class<?> forName = Class.forName(path);
                URL resource = forName.getResource(forName.getSimpleName() + ".class");
                if (!"file".equalsIgnoreCase(resource.getProtocol()))
                    throw new IllegalStateException("Class is not stored in a file.");
                return resource.getPath();
            }
    
  4. 请注意,[project/target] 作为回报是项目名称,仅此而已。

于 2012-11-27T03:18:59.200 回答
0

在 Kepler 上,窗口右侧有一个向下箭头(称为“查看菜单”),您可以在其中选中“显示文件名”

于 2015-05-08T14:45:06.683 回答