«Запуск» другой java-программы выполняется путем вызова ее основного метода.Скажем, у вас есть класс net.tilialacus.TheProg, который вы хотите запустить, затем вы можете сделать (в другой Java-программе)
String[] args = {"arg1", "arg2"};
net.tilialacus.TheProg.main(args);
или с помощью отражения, если класс не известен во время компиляции:
Class<?> theClass = Class.forName("net.tilialacus.TheProg");
Method method = theClass.getDeclaredMethod("main", String[].class);
String[] args = { "arg1", "arg2"};
method.invoke(null, (Object)args);
Конечно, вам нужно обрабатывать исключения, если класс не существует или не имеет метода "public static main (String [])".