| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Java パッケージ配下のクラスを取得する

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

Java パッケージ配下のクラスを取得する

Java |

/**
 * @param package getClass().getPackage();
 */
public void getClassesInPackage(Package package) throws Exception {
    final char PACKAGE_SEP = '.';
    final char PACKAGE_RESOURCE_SEP = '/';
    
    String packageName = package.getName();
    String packageResource 
        = packageName.replace(PACKAGE_SEP, PACKAGE_RESOURCE_SEP); 
    
    logger.info("RESOURCE:" + packageResource);
    
    ClassLoader loader = ClassLoader.getSystemClassLoader();
    
    URL resource = loader.getResource(packageResource);
    
    File f = new File(resource.getPath());
    
    for (String file : f.list()) {
        if (file.matches(".*\\.class$")) {
            String className = packageName + PACKAGE_SEP + file.replaceAll("\\.class$","");
            logger.info("CLASS:" + className);
            
            @SuppressWarnings("rawtypes")
            Class cls = Class.forName(className);
            logger.info("OBJECT:" + cls.newInstance());
        }
    }
}