Greetings, I have a really strange error as follows. I have two files:
*Test3.java:* import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyCodeSource; import org.codehaus.groovy.tools.GroovyClass; import java.io.File; import java.io.IOException; import java.lang.reflect.Method; public class Test3 { public static void main(String[] args) throws IOException, NoSuchMethodException { GroovyClassLoader groovyLoader = new GroovyClassLoader(GroovyClass.class .getClassLoader()); Class<?> groovyClass = groovyLoader.parseClass(new GroovyCodeSource(new File("src/Test4.groovy")), false); Class<?> [] argTypes = new Class[1]; argTypes[0] = Object.class; Method f1 = groovyClass.getMethod("fun1", argTypes); Method f2 = groovyClass.getMethod("main", argTypes); int x = 1; } } *Test4.groovy:* class Test4 { static void fun1(Object x) { println "Hello from fun1" } static void main(Object x) { println "Hello from main" } } Getting "f1" always works. However, getting "f2" throws an exception! Interestingly, if I rename "main" or pass a different argument type, it works. The only time it doesn't work is if the method name is "main" and it has a single Object argument. Does anyone know why this is? Thanks! Blake McBride