Поскольку у вас уже есть JVM работают, вы должны быть в состоянии сделать это инстанцирование загрузчика классов с баночками и рефлекторно найти основной метод и вызывать его.
Это некоторые шаблонные, которые могут быть полезны:
// add the classes dir and each file in lib to a List of URLs.
List urls = new ArrayList();
urls.add(new File(CLASSES).toURL());
for (File f : new File(LIB).listFiles()) {
urls.add(f.toURL());
}
// feed your URLs to a URLClassLoader
ClassLoader classloader =
new URLClassLoader(
urls.toArray(new URL[0]),
ClassLoader.getSystemClassLoader().getParent());
// relative to that classloader, find the main class and main method
Class mainClass = classloader.loadClass("Test");
Method main = mainClass.getMethod("main",
new Class[]{args.getClass()});
// well-behaved Java packages work relative to the
// context classloader. Others don't (like commons-logging)
Thread.currentThread().setContextClassLoader(classloader);
// Invoke with arguments
String[] nextArgs = new String[]{ "hello", "world" }
main.invoke(null, new Object[] { nextArgs });
why've Я был downvoted? –
Потому что люди на переполнении стека претенциозны и думают, что все это плохой вопрос. Я проголосовал за ваш вопрос до 0, и мне любопытно увидеть ответ сам. – 2013-02-22 03:59:22
haha спасибо за поддержку @Decave –