001    package railo.cli;
002    
003    import java.io.File;
004    import java.io.FilenameFilter;
005    import java.lang.reflect.Method;
006    import java.net.URL;
007    import java.net.URLClassLoader;
008    
009    public class MainEntryPoint {
010    
011            public static void main(String[] args) throws Throwable {
012                    File libDir=new File("./").getCanonicalFile();
013                    System.out.println(libDir);
014                    
015                    // Fix for tomcat
016            if(libDir.getName().equals(".") || libDir.getName().equals(".."))
017                    libDir=libDir.getParentFile();
018                    
019            File[] children = libDir.listFiles(new ExtFilter());
020            if(children.length<2) {
021                    libDir=new File(libDir,"lib");
022                     children = libDir.listFiles(new ExtFilter());
023            }
024            
025            URL[] urls = new URL[children.length];
026            System.out.println("Loading Jars");
027            for(int i=0;i<children.length;i++){
028                    urls[i]=new URL ("jar:file://" + children[i] + "!/");
029                    System.out.println("- "+urls[i]);
030            }
031            System.out.println();
032            URLClassLoader cl = new URLClassLoader(urls,ClassLoader.getSystemClassLoader());
033            Class cli = cl.loadClass("railo.cli.CLI");
034            Method main = cli.getMethod("main",new Class[]{String[].class});
035            main.invoke(null, new Object[]{args});
036            
037            
038            }
039            
040    
041            public static class ExtFilter implements FilenameFilter {
042                    
043                    private String ext=".jar";
044                    public boolean accept(File dir, String name) {
045                            return name.toLowerCase().endsWith(ext);
046                    }
047    
048            }
049    }