public static Class<?> loadClass(String path) throws ClassNotFoundException, IOException { GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); Class<?> classLoader = groovyClassLoader.loadClass(path); groovyClassLoader.close(); return classLoader; }
public static Class<?> parseClass(String text) throws IOException { GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); Class<?> classLoader = groovyClassLoader.parseClass(text); groovyClassLoader.close(); return classLoader; }
Object[] a = {}; groovyObject.invokeMethod("run", a); loader.close();
/** * Method which executes Groovy script provided in the pathToScript. * * @param pathToScript * path to Groovy script. * * @throws InstantiationException * if class cannot be instantiated * * @throws IllegalAccessException * if an illegal access occurred * * @throws IOException * general IO Exceptions */ public static void start(String pathToScript) throws InstantiationException, IllegalAccessException, IOException { ClassLoader parent = ExperimentStarter.class.getClassLoader(); GroovyClassLoader loader = new GroovyClassLoader(parent); StringWriter writer = new StringWriter(); IOUtils.copy(parent.getResourceAsStream(pathToScript), writer, "UTF-8"); Class<?> groovyClass = loader.parseClass(writer.toString()); GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance(); Object[] a = {}; groovyObject.invokeMethod("run", a); loader.close(); } }
import groovy.lang.GroovyClassLoader ; import groovy.lang.GroovyObject ; public class Test { public static void main( String[] args ) throws Exception { GroovyClassLoader loader = new GroovyClassLoader() ; GroovyObject o = (GroovyObject)loader.loadClass( "File1" ).newInstance() ; o.invokeMethod( "run", new Object[] {} ) ; loader.close() ; } }
public static Class<?> parseClass(InputStream in, String location) throws IOException { GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); Class<?> classLoader = groovyClassLoader.parseClass(UtilIO.readString(in), location); groovyClassLoader.close(); return classLoader; } public static Class<?> parseClass(InputStream in, String location, GroovyClassLoader groovyClassLoader) throws IOException {
@Override public Object createInstance(NitDesc nitDesc) throws NitException { GroovyClassLoader gc = new GroovyClassLoader(); try { Class<?> cl = gc.parseClass(nitDesc.getScript()); return NitFactory.findMatchingConstructor(nitDesc, cl); } finally { try { gc.close(); } catch (IOException e) { } } }