Eclipseのいくつかのメソッドのコールチェーンレポートを取得したいので、Ctrl+ Alt+を押しHてメソッド呼び出し階層ビューを開き、numpad_multiplyキーを押してすべてのノードを展開します。
問題は、各ノードをクリックして、それがどのプロジェクトに属しているかを知る必要があることです。
レポートを取得する方法やプラグインはありますか?
(私はWeb開発者向けにEclipse 3.5 Galileo Java EE IDEを使用しています。アドバイスをありがとうございます)
Eclipseのいくつかのメソッドのコールチェーンレポートを取得したいので、Ctrl+ Alt+を押しHてメソッド呼び出し階層ビューを開き、numpad_multiplyキーを押してすべてのノードを展開します。
問題は、各ノードをクリックして、それがどのプロジェクトに属しているかを知る必要があることです。
レポートを取得する方法やプラグインはありますか?
(私はWeb開発者向けにEclipse 3.5 Galileo Java EE IDEを使用しています。アドバイスをありがとうございます)
私の質問に答えてください、これが誰かに役立つことを願っています。(それは賢い方法ではありませんが、私にとってはうまくいきます。)
準備:
Ctrl + Alt + Hでメソッド呼び出し階層ビューを開き、numpad_multiplyキーを押してすべてのノードを展開します。
Ctrl + Aを押して、すべてのノードを選択します。
完全修飾クラス名をコピーして、どこかのファイル(c:\ tmp.txtなど)に保存します。
上記のファイルのすべてのメソッド名を削除します。
例:
com.test.Class1.method1(Long, String)-> com.test.Class1
ソース:
同じワークスペースに新しいプロジェクト(タイプjava)を作成します
ターゲットプロジェクト参照を新しいプロジェクトに追加します
上記のファイル(例: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();
}
代わりに[project/target]がプロジェクト名であることに注意してください、それだけです。
Keplerでは、ウィンドウの右側に下向き矢印(「表示メニュー」と呼ばれます)があり、「ファイル名を表示」をチェックできます。