如何从Eclipse“Open Call Hierarchy”获取项目信息?

时间:2012-09-27 06:36:23

标签: java eclipse eclipse-plugin

我想获得eclipse中某些方法的调用链报告, 所以我按 Ctrl + Alt + H 打开方法调用层次结构视图, 并按numpad_multiply键展开所有节点。

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

有没有办法或插件来获取报告?

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

2 个答案:

答案 0 :(得分:0)

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

准备:

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

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

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

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

    示例:

      com.test.Class1.method1(Long, String)-> com.test.Class1
    
  5. 来源:

    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]的回报是项目名称,这就是全部。

答案 1 :(得分:0)

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