2013-04-11 3 views
0

Мне нужно прочитать имена классов (простое имя) из файла jar (OSGified). Я поместил файл jar в папку lib, и он добавлен в путь класса. Вот код, который я написал:читать имена классов из файла jar в плагине eclipse

public void loadClassName() throws IOException { 
    JarFile jf = new JarFile("/lib/xxxx-1.0.0.jar"); 
    List<String> list = new ArrayList<String>(); 
    for (JarEntry entry : Collections.list(jf.entries())) { 
     if (entry.getName().endsWith(".class")) { 
      String className = entry.getName().replace("/", ".").replace(".class", ""); 
      list.add(className); 
     } 
    } 
} 

Каким-то образом, я "получаю Filenotfound исключение при создании объекта jarfile Может кто-нибудь, дайте мне знать, как мы должны дать путь банку конструктору JarFile

ответ

0

Благодаря пользовательскому @Perception Его ответ работал безупречно

Это рабочий код:..

final InputStream jarStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("lib/xxxxx-1.0.0.jar"); 
     JarInputStream jfs = new JarInputStream(jarStream); 
     List<String> list = new ArrayList<String>(); 
     JarEntry je = null; 
     while (true) { 
      je = jfs.getNextJarEntry(); 
      if (je == null) { 
       break; 
      } 
      if (je.getName().endsWith(".class")) { 
       String className = je.getName().replace("/", ".").replace(".class", ""); 
        list.add(className); 
      } 
     } 
0
.?

попробовать это: JarFile jf = new JarFile("lib/xxxx-1.0.0.jar");

+1

Ваш ответ будет значительно улучшен, если вы объясните, почему вы делаете эту рекомендацию. –

Смежные вопросы