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 }