package org.audit4j.core.extra.scannotation; import java.io.IOException; import java.net.URL; import java.util.Enumeration; import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; public class ClassLoaderTest { public static void main(String[] args) { ann(); } private static void classL() { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); final Set<URL> result = new HashSet<>(); System.out.println("asd"); String packageName = "org.audit4j.core.option.annotation"; String path = packageName.replace('.', '/'); try { final Enumeration<URL> urls = classLoader.getResources(path); while (urls.hasMoreElements()) { final URL url = urls.nextElement(); System.out.println(url.toString()); int index = url.toExternalForm().lastIndexOf(path); System.out.println(index); if (index != -1) { System.out.println("a"); result.add(new URL(url.toExternalForm().substring(0, index))); } else { System.out.println("b"); result.add(url); // whatever } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } for (URL url : result) { System.out.println(url.toString()); } } private static void ann() { System.out.println("as"); ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); String packageName = "org.audit4j.core.option.annotation"; String path = packageName.replace('.', '/'); URL url = null; try { final Enumeration<URL> urls = classLoader.getResources(path); while (urls.hasMoreElements()) { url = urls.nextElement(); int index = url.toExternalForm().lastIndexOf(path); url = new URL(url.toExternalForm().substring(0, index)); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } AnnotationDB db = new AnnotationDB(); String[] packages = { "org.audit4j.core.option.annotation" }; db.setScanClassAnnotations(true); try { db.scanArchives(url); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } db.getClassIndex(); for (Entry<String, Set<String>> entry : db.getClassIndex().entrySet()) { System.out.println(entry.getKey()); } } }