1 18 19 package com.martiansoftware.nailgun.builtins; 20 21 import java.io.File ; 22 import java.net.URL ; 23 import java.net.URLClassLoader ; 24 25 import com.martiansoftware.nailgun.NGContext; 26 27 38 public class NGClasspath { 39 40 53 private static void addToSystemClassLoader(URL url) throws Exception { 54 URLClassLoader sysloader = (URLClassLoader ) ClassLoader.getSystemClassLoader(); 55 Class sysclass = URLClassLoader .class; 56 57 java.lang.reflect.Method method = sysclass.getDeclaredMethod("addURL", new Class [] {URL .class}); 58 method.setAccessible(true); 59 method.invoke(sysloader, new Object []{url}); 60 } 61 62 public static void nailMain(NGContext context) throws Exception { 63 String [] args = context.getArgs(); 64 if (args.length == 0) { 65 URLClassLoader sysLoader = (URLClassLoader ) ClassLoader.getSystemClassLoader(); 66 URL [] urls = sysLoader.getURLs(); 67 for (int i = 0; i < urls.length; ++i) { 68 context.out.println(urls[i]); 69 } 70 } else { 71 for (int i = 0; i < args.length; ++i) { 72 File file = new File (args[i]); 73 addToSystemClassLoader(file.toURL()); 74 } 75 } 76 } 77 } 78 | Popular Tags |