| Find Java classes that are applications |
|
|
|
| Written by Charles | |||||
| Thursday, 12 November 2009 14:43 | |||||
|
Some solutions to finding, inspecting and examining classes are done more efficiently using a bytecode-based library than using reflection.
import org.clapper.util.classutil.*;
import java.io.*; import java.util.*; public class FindApps { public static void main(String[] args) throws Throwable { // Arguments are a series of classpaths ClassFinder finder = new ClassFinder(); for (String arg : args) finder.add(new File(arg)); ClassFilter filter = new ApplicationFilter(); Collection<ClassInfo> foundClasses = new ArrayList<ClassInfo>(); finder.findClasses(foundClasses, filter); for (ClassInfo classInfo : foundClasses) System.out.println("Found " + classInfo.getClassName()); } // Accept classes that have main methods static class ApplicationFilter implements ClassFilter { public boolean accept(ClassInfo info, ClassFinder finder) { boolean found = false; Iterator<MethodInfo> i = info.getMethods().iterator(); while (i.hasNext() && !found) { found = "main".equals(i.next().getName()); } return found; } } }
Only registered users can write comments!
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
|||||
| Last Updated ( Thursday, 12 November 2009 16:06 ) |



