> But I didn't compile Foo, I only have the .class.
That's not a problem, all you need is the .class. But, it needs to be
in your classpath, so that the compiler can find it; the compiler needs
to see it so that it can check your code (e.g. to see whether or not
Foo contains a main() method, or else it won't be able to generate code
for the Foo.main() call).
Alternatively, use the reflection approach mentioned earlier:
try {
Class c = Class.forName("Foo");
String[] args = new String[] { "Hello", "world" };
Method m = c.getMethod("main", new Class[] { args.getClass() });
m.invoke(null, args);
} catch (Exception e) {
// Possible exceptions include ClassNotFoundException,
// NoSuchMethodException, InvocationTargetException
e.printStackTrace();
}
|