2016-04-26 78 views
0

我想在類路徑中列出一些類,但我不希望所有這些類(此外,掃描整個類路徑非常慢)。給定一個ExampleClass,我想讓所有的類都駐留在同一個類路徑條目中(即目錄或JAR,其他情況可以忽略)。有一個ClassLoader。如何從類加載路徑

使用ExampleClass.class.getResource("/"),因爲我總是得到第一類路徑條目不工作,例如,

/whatever/build/classes/main/ 

ExampleClass.class.getResource(".")返回正確的入口的孩子,例如,

/whatever/build/classes/test/somepackage/ExampleClass.class 

這是我所能過程到

/whatever/build/classes/test/ 

但我不知道是否有一個賭注而不是用字符串混淆。

回答

2
URL url = ExampleClass.getProtectionDomain().getCodeSource().getLocation(); 

檢查NULL但是。

0

下面是一個例子:

package foo; 
    public class Test 
    { 
     public static void main(String[] args) 
     { 
      ClassLoader loader = Test.class.getClassLoader(); 
      System.out.println(loader.getResource("foo/Test.class")); 
     } 
    } 

輸出是:

file:/C:/Users/Jon/Test/foo/Test.class