2010-06-21 10 views
2

У меня есть следующая java-программа, которая возвращает определенные классы из каталога. Я хочу найти имена пакетов для этих классов. Как я могу это сделать? любой код будет полезным.Получение имен пакетов из классов

import java.util.*; 
import java.io.*; 

public class CreateTestPackage 
{ 
    public void execute() 
    { 
     List<Class> findClasses(File directory) throws ClassNotFoundException 
     { 

      List<Class> classes = new ArrayList<Class>(); 
      if (!directory.exists()) 
      { 
       return classes; 
      } 
      File[] files = directory.listFiles(new FilenameFilter() 
      { 
       public boolean accept(File dir, String name) 
       { 
        return name.matches("test.*\\.class"); 
       } 
      }); 
      for (File file : files) 
      { 
       if (file.isDirectory()) 
       { 
        assert !file.getName().contains("."); 
        classes.addAll(findClasses(file)); 
       } 
       else if (file.getName().endsWith(".class")) 
       { 
        classes.add(Class.forName(file.getName().substring(0, file.getName().length() - 6))); 
       } 
      } 
      return classes; 
     } 
    } 




} 

ответ

2
for(Class c : classes) { 
    c.getPackage().getName(); 
} 
+0

Спасибо Mike Я получаю эту ошибку синтаксиса ошибку, вставить ";" для завершения LocalVariableDeclarationStatement по адресу Список findClasses (Каталог файлов) throws ClassNotFoundException – Jony

+0

Codenotguru просто добавьте «;» в конце "c.getPackage(). getName()" – Khanser

+0

Что сказал Хансер ... – Mike

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