java
может просто открывать запуск одного приложения за раз, но вы можете написать простой модуль запуска , который принимает имена классов в качестве аргументов и выполняет их в отдельных потоках.Краткий обзор:
public class Launcher {
public static void main(String[] args) throws Exception {
for (int i = 0; i<args.length; i++) {
final Class clazz = Class.forName(args[i]);
new Thread(new Runnable() {
@Override
public void run() {
try{
Method main = clazz.getMethod("main", String[].class);
main.invoke(null, new Object[]{});
} catch(Exception e) {
// improper exception handling - just to keep it simple
}
}
}).start();
}
}
}
Вызов этого типа
java -cp <classpath for all applications!> Launcher com.example.App1 com.example.App2
должен запускать приложения App1 и App2 внутри одной виртуальной машины и параллельно.