List of usage examples for java.net URLClassLoader loadClass
public Class<?> loadClass(String name) throws ClassNotFoundException
From source file:io.fabric8.maven.core.util.MavenUtil.java
/** * Returns true if all the given class names could be found on the given class loader *//*from w ww. jav a 2s.c om*/ public static boolean hasAllClasses(MavenProject project, String... classNames) { URLClassLoader compileClassLoader = getCompileClassLoader(project); for (String className : classNames) { try { compileClassLoader.loadClass(className); } catch (Throwable e) { // ignore message return false; } } return true; }
From source file:org.oscarehr.common.hl7.v2.oscar_to_oscar.DynamicHapiLoaderUtils.java
private static void setNoValidate(URLClassLoader classLoader, Class<?> pipedParserClass, Object pipedParserInstance) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, SecurityException, NoSuchMethodException { Class<?> noValidateClass = classLoader.loadClass("ca.uhn.hl7v2.validation.impl.NoValidation"); Object noValidateInstance = noValidateClass.newInstance(); Class<?> validationContextClass = classLoader.loadClass("ca.uhn.hl7v2.validation.ValidationContext"); Method noValidateMethod = pipedParserClass.getMethod("setValidationContext", validationContextClass); noValidateMethod.invoke(pipedParserInstance, new Object[] { noValidateInstance }); }
From source file:org.evosuite.junit.FooTestClassLoader.java
private static Class<?> loadClass(File javaBinDir) { URLClassLoader urlClassLoader = null; try {// w w w . ja va 2s . c o m URI javaBinURI = javaBinDir.toURI(); URL javaBinURL = javaBinURI.toURL(); urlClassLoader = new URLClassLoader(new URL[] { javaBinURL }, Foo.class.getClassLoader()); Class<?> clazz = urlClassLoader.loadClass(FOO_TEST_CLASS_NAME); return clazz; } catch (ClassNotFoundException e) { return null; } catch (MalformedURLException e) { return null; } }
From source file:fr.jayasoft.ivy.Main.java
private static void invoke(Ivy ivy, File cache, ModuleDescriptor md, String[] confs, String mainclass, String[] args) {//from w w w . j a v a 2s. c om List urls = new ArrayList(); try { XmlReportParser parser = new XmlReportParser(); Collection all = new LinkedHashSet(); for (int i = 0; i < confs.length; i++) { Artifact[] artifacts = parser.getArtifacts(md.getModuleRevisionId().getModuleId(), confs[i], cache); all.addAll(Arrays.asList(artifacts)); } for (Iterator iter = all.iterator(); iter.hasNext();) { Artifact artifact = (Artifact) iter.next(); urls.add(ivy.getArchiveFileInCache(cache, artifact).toURL()); } } catch (Exception ex) { throw new RuntimeException("impossible to build ivy cache path: " + ex.getMessage(), ex); } URLClassLoader classLoader = new URLClassLoader((URL[]) urls.toArray(new URL[urls.size()]), Main.class.getClassLoader()); try { Class c = classLoader.loadClass(mainclass); Method mainMethod = c.getMethod("main", new Class[] { String[].class }); // Split up arguments mainMethod.invoke(null, new Object[] { args }); } catch (ClassNotFoundException cnfe) { throw new RuntimeException("Could not find class: " + mainclass, cnfe); } catch (SecurityException e) { throw new RuntimeException("Could not find main method: " + mainclass, e); } catch (NoSuchMethodException e) { throw new RuntimeException("Could not find main method: " + mainclass, e); } catch (IllegalAccessException e) { throw new RuntimeException("No permissions to invoke main method: " + mainclass, e); } catch (InvocationTargetException e) { throw new RuntimeException("Unexpected exception invoking main method: " + mainclass, e); } }
From source file:org.apache.sysml.runtime.codegen.CodegenUtils.java
private static Class<?> compileClassJavac(String name, String src) { try {//from w w w . ja v a 2 s . c o m //create working dir on demand if (_workingDir == null) createWorkingDir(); //write input file (for debugging / classpath handling) File ftmp = new File(_workingDir + "/" + name.replace(".", "/") + ".java"); if (!ftmp.getParentFile().exists()) ftmp.getParentFile().mkdirs(); LocalFileUtils.writeTextFile(ftmp, src); //get system java compiler JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); if (compiler == null) throw new RuntimeException("Unable to obtain system java compiler."); //prepare file manager DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); //prepare input source code Iterable<? extends JavaFileObject> sources = fileManager .getJavaFileObjectsFromFiles(Arrays.asList(ftmp)); //prepare class path URL runDir = CodegenUtils.class.getProtectionDomain().getCodeSource().getLocation(); String classpath = System.getProperty("java.class.path") + File.pathSeparator + runDir.getPath(); List<String> options = Arrays.asList("-classpath", classpath); //compile source code CompilationTask task = compiler.getTask(null, fileManager, diagnostics, options, null, sources); Boolean success = task.call(); //output diagnostics and error handling for (Diagnostic<? extends JavaFileObject> tmp : diagnostics.getDiagnostics()) if (tmp.getKind() == Kind.ERROR) System.err.println("ERROR: " + tmp.toString()); if (success == null || !success) throw new RuntimeException("Failed to compile class " + name); //dynamically load compiled class URLClassLoader classLoader = null; try { classLoader = new URLClassLoader(new URL[] { new File(_workingDir).toURI().toURL(), runDir }, CodegenUtils.class.getClassLoader()); return classLoader.loadClass(name); } finally { IOUtilFunctions.closeSilently(classLoader); } } catch (Exception ex) { LOG.error("Failed to compile class " + name + ": \n" + src); throw new DMLRuntimeException("Failed to compile class " + name + ".", ex); } }
From source file:gdt.data.entity.facet.ExtensionHandler.java
/** * Get the handler instance. /*from w w w.j av a 2s . c o m*/ * @param entigrator entigrator instance * @param extension$ extension key * @param handlerClass$ class name * @return handler instance. */ public static Object loadHandlerInstance(Entigrator entigrator, String extension$, String handlerClass$) { try { System.out.println( "ExtensionHandler:loadHandlerInstance:extension=" + extension$ + " handler=" + handlerClass$); Object obj = null; Class<?> cls = entigrator.getClass(handlerClass$); if (cls == null) { System.out.println("ExtensionHandler:loadHandlerInstance:1"); Sack extension = entigrator.getEntityAtKey(extension$); String lib$ = extension.getElementItemAt("field", "lib"); String jar$ = "jar:file:" + entigrator.getEntihome() + "/" + extension$ + "/" + lib$ + "!/"; ArrayList<URL> urll = new ArrayList<URL>(); urll.add(new URL(jar$)); String[] sa = extension.elementListNoSorted("external"); if (sa != null) { File file; for (String s : sa) { file = new File(entigrator.getEntihome() + "/" + extension$ + "/" + s); if (file.exists()) urll.add(new URL("jar:file:" + file.getPath() + "!/")); } } URL[] urls = urll.toArray(new URL[0]); URLClassLoader cl = URLClassLoader.newInstance(urls); // Class<?>cls=entigrator.getClass(handlerClass$); cls = cl.loadClass(handlerClass$); if (cls == null) { System.out.println("ExtensionHandler:loadHandlerInstance:cannot load class =" + handlerClass$); return null; } else { // System.out.println("ExtensionHandler:loadHandlerInstance:found class ="+handlerClass$); entigrator.putClass(handlerClass$, cls); } } try { Constructor[] ctors = cls.getDeclaredConstructors(); System.out.println("ExtensionHandler:loadHandlerInstance:ctors=" + ctors.length); Constructor ctor = null; for (int i = 0; i < ctors.length; i++) { ctor = ctors[i]; if (ctor.getGenericParameterTypes().length == 0) break; } ctor.setAccessible(true); obj = ctor.newInstance(); } catch (java.lang.NoClassDefFoundError ee) { System.out.println("ExtensionHandler:loadHandlerInstance:" + ee.toString()); return null; } //if(obj!=null) System.out.println("ExtensionHandler:loadHandlerInstance:obj=" + obj.getClass().getName()); return obj; } catch (Exception e) { Logger.getLogger(ExtensionHandler.class.getName()).severe(e.toString()); return null; } }
From source file:gdt.data.entity.facet.ExtensionHandler.java
private static FacetHandler[] listExtensionHandlers(Entigrator entigrator, String extension$) { try {//from w ww. j a v a 2s . c om System.out.println("ExtesionHandler:listExtensionHandlers:extension=" + extension$); Sack extension = entigrator.getEntityAtKey(extension$); String lib$ = extension.getElementItemAt("field", "lib"); String[] sa = extension.elementList("content.fhandler"); if (sa == null) return null; ArrayList<FacetHandler> fl = new ArrayList<FacetHandler>(); FacetHandler fh; Class<?> cls; String jar$ = "jar:file:" + entigrator.getEntihome() + "/" + extension$ + "/" + lib$ + "!/"; URL[] urls = { new URL(jar$) }; URLClassLoader cl = URLClassLoader.newInstance(urls); for (String aSa : sa) { try { // System.out.println("ExtesionHandler:listExtensionHandlers:jar="+jar$); cls = cl.loadClass(aSa); fh = (FacetHandler) cls.newInstance(); fl.add(fh); } catch (Exception ee) { Logger.getLogger(ExtensionHandler.class.getName()).severe("load class: " + ee.toString()); } } return fl.toArray(new FacetHandler[0]); } catch (Exception e) { Logger.getLogger(ExtensionHandler.class.getName()).severe(e.toString()); return null; } }
From source file:request.processing.ServletLoader.java
public static void loadServlet(String servletDir) { try {/*from w w w . j av a2s.c om*/ JarFile jarFile = new JarFile(servletDir); Enumeration<JarEntry> e = jarFile.entries(); URL[] urls = { new URL("jar:file:" + servletDir + "!/") }; URLClassLoader cl = URLClassLoader.newInstance(urls); while (e.hasMoreElements()) { try { JarEntry je = (JarEntry) e.nextElement(); if (je.isDirectory() || !je.getName().endsWith(".class")) { continue; } String className = je.getName().substring(0, je.getName().length() - 6); className = className.replace('/', '.'); Class c = cl.loadClass(className); if (Servlet.class.isAssignableFrom(c)) { Constructor<Servlet> constructor = c.getConstructor(); Servlet i = constructor.newInstance(); namesToServlets.put(c.getSimpleName(), i); } else { continue; } } catch (ClassNotFoundException cnfe) { System.err.println("Class not found"); cnfe.printStackTrace(); } catch (NoSuchMethodException e1) { System.err.println("No such method"); e1.printStackTrace(); } catch (SecurityException e1) { System.err.println("Security Exception"); e1.printStackTrace(); } catch (InstantiationException e1) { System.err.println("Instantiation Exception"); e1.printStackTrace(); } catch (IllegalAccessException e1) { System.err.println("IllegalAccessException"); e1.printStackTrace(); } catch (IllegalArgumentException e1) { System.err.println("IllegalArgumentException"); e1.printStackTrace(); } catch (InvocationTargetException e1) { System.err.println("InvocationTargetException"); e1.printStackTrace(); } } jarFile.close(); } catch (IOException e) { System.err.println("Not a jarFile, no biggie. Moving on."); } }
From source file:org.apache.stratos.cartridge.agent.statistics.publisher.PluginLoader.java
public static List<Class> loadPluginClassesFromJar(File jarPath, Class pluginInterface) { List<Class> listeners = new LinkedList<Class>(); try {/*from w w w .ja v a2s. c o m*/ URLClassLoader loader = new URLClassLoader(new URL[] { jarPath.toURI().toURL() }); JarFile jar = new JarFile(jarPath); Enumeration<? extends JarEntry> jarEnum = jar.entries(); log.trace("Scanning jar file " + jarPath); while (jarEnum.hasMoreElements()) { ZipEntry zipEntry = jarEnum.nextElement(); String fileName = zipEntry.getName(); if (fileName.endsWith(".class")) { log.trace("Considering jar entry " + fileName); try { String className = fileName.replace(".class", "").replace("/", "."); Class cls = loader.loadClass(className); log.trace("Loaded class " + className); if (hasInterface(cls, pluginInterface)) { log.trace("Class has " + pluginInterface.getName() + " interface; adding "); listeners.add(cls); } } catch (ClassNotFoundException e) { log.error("Unable to load class from " + fileName + " in " + jarPath); } } } } catch (IOException e) { log.error("Unable to open JAR file " + jarPath, e); } return listeners; }
From source file:org.eclipse.wb.internal.swing.laf.LafUtils.java
/** * Opens given <code>jarFile</code>, loads every class inside own {@link ClassLoader} and checks * loaded class for to be instance of {@link LookAndFeel}. Returns the array of {@link LafInfo} * containing all found {@link LookAndFeel} classes. * /*from w w w.j av a 2 s .c om*/ * @param jarFileName * the absolute OS path pointing to source JAR file. * @param monitor * the progress monitor which checked for interrupt request. * @return the array of {@link UserDefinedLafInfo} containing all found {@link LookAndFeel} * classes. */ public static UserDefinedLafInfo[] scanJarForLookAndFeels(String jarFileName, IProgressMonitor monitor) throws Exception { List<UserDefinedLafInfo> lafList = Lists.newArrayList(); File jarFile = new File(jarFileName); URLClassLoader ucl = new URLClassLoader(new URL[] { jarFile.toURI().toURL() }); JarFile jar = new JarFile(jarFile); Enumeration<?> entries = jar.entries(); while (entries.hasMoreElements()) { JarEntry entry = (JarEntry) entries.nextElement(); String entryName = entry.getName(); if (entry.isDirectory() || !entryName.endsWith(".class") || entryName.indexOf('$') >= 0) { continue; } String className = entryName.replace('/', '.').replace('\\', '.'); className = className.substring(0, className.lastIndexOf('.')); Class<?> clazz = null; try { clazz = ucl.loadClass(className); } catch (Throwable e) { continue; } // check loaded class to be a non-abstract subclass of javax.swing.LookAndFeel class if (LookAndFeel.class.isAssignableFrom(clazz) && !Modifier.isAbstract(clazz.getModifiers())) { // use the class name as name of LAF String shortClassName = CodeUtils.getShortClass(className); // strip trailing "LookAndFeel" String lafName = StringUtils.chomp(shortClassName, "LookAndFeel"); lafList.add(new UserDefinedLafInfo(StringUtils.isEmpty(lafName) ? shortClassName : lafName, className, jarFileName)); } // check for Cancel button pressed if (monitor.isCanceled()) { return lafList.toArray(new UserDefinedLafInfo[lafList.size()]); } // update ui while (DesignerPlugin.getStandardDisplay().readAndDispatch()) { } } return lafList.toArray(new UserDefinedLafInfo[lafList.size()]); }