-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andrew Haley schrieb: > Christoph Höger wrote: >> Hi, >> >> I do not know where to ask that, so I try it here: >> >> I want to load a (dynamically created) class via URL ClassLoader and >> then invoke a public static method on it. >> >> Here is the code: >> >> Class lexerDefs = Class.forName("parser.LexerDefs", true, loader); >> >> Method getLexerDefs = null; >> >> try { >> getLexerDefs = lexerDefs.getMethod("lexerDefs", new Class[] {}); >> } catch (NoSuchMethodException e) { >> fail("Class " + lexerDefs.getName() + " has no method lexerDefs()\n" >> + e.getMessage()); >> } >> >> parser.Options.inputFile = this.inputFile; >> >> System.err.println("invoking: " + getLexerDefs.toString()); >> >> Object retObject = getLexerDefs.invoke(null, new Object[0]); >> >> But all I get is: >> Class test.TestParserGenerator can not access a member of class >> parser.LexerDefs with modifiers "public static" >> >> So loading class seems to work, but I cannot invoke a _public_ method? Why? >> >> Anyone knows about reflection? > > Yes. Does a public static method with that exact signature "()" exist? > In the classpath? What if you call it directly? > > Andrew. > Hi, the problem is solved (thanks again to Alexei Mokeev who answered off list). My external class wasn't public enough ;). The error message confused me, as it stated it could not access the method and not the class. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFIwRonhMBO4cVSGS8RAiPrAKC9JiH5PlWyKayfyGP2E5fnUK+b4wCcDJqt eZiZncqIz31roLe335NUy0k= =wM50 -----END PGP SIGNATURE----- -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list