2013-06-25 71 views
2

我有一個代碼示例,瀏覽我的工作區並選擇每個類中的每個方法。 我的意圖是打印出該方法的絕對路徑,但我不知道該怎麼做。獲取方法的類文件的絕對路徑

類似method.getAbsolutePath()的東西不存在。

我的代碼:

IPackageFragment[] packages = javaProject.getPackageFragments(); 
for (IPackageFragment mypackage : packages) { 
    for (ICompilationUnit unit : mypackage.getCompilationUnits()) { 
     IType[] allTypes = unit.getAllTypes(); 
     for (IType type : allTypes) { 
      IMethod[] methods = type.getMethods(); 
      for (IMethod method : methods) { 
       //System.out.println(MyMethodPath); 
       //here is want to print the path 
      } 
     } 
    } 
} 

有人能幫忙嗎?

+0

所以...你想打印完整的包名稱,然後是類,然後是方法名? – jahroy

+0

不要混淆:我想打印方法所在的CLASS的路徑。 – Hayabusa

回答

2

你可以得到IMethod.getClassFile類,然後可以用來獲取使用IClassFile.getPath,或者更重要的是絕對路徑:

System.out.println(method.getClassFile().getPath().toString()); 
+0

由於某種原因,這對我而言總是返回null。對於我工作區中的每種方法 – Hayabusa

1

我覺得這是你需要什麼,而不是評論我:

System.getProperty ("user.dir"); 
+0

不幸的是,這會打印出日食的路徑,但不會顯示我工作區中的類。 – Hayabusa