Как запустить стороннее java-приложение из главного java-приложения?
Вопрос немножко ламерский, заранее прошу прощения.
Есть необходимость создать оконное java-приложение, которое должно по кнопке запускать стороннее java-приложение в отдельном потоке. То есть, стороннее java-приложение - это скомпилированное в .java или в .jar приложение, классы которого не прописаны в основном java-приложении. Другими словами, я не могу обычным образом объявить класс стороннего java-приложения в основном, чтобы получить доступ к его методу main().
Но ведь как-то это можно сделать? Помогите, пожалуйста. Если вопрос описан в доке, ткните меня в неё, пожалуйста.
Модератор, у меня под комментарием Сергея Горностаева отсутствует кнопка "Ответить", тогда как под вашим комментарием она есть. Как я могу выбрать то, чего нет?
Сергей Горностаев, спасибо, Сергей!
Если внешнее приложение - это неизвестная мне заранее программа в нативном коде, то я могу использовать класс Process, которому в виде строки передам то, что мне нужно запустить. Но мне нужно запустить именно java-программу.
Что-то мне подсказывает что запускать стороннее приложение как runtime.exec("C:\\Progra~1\\Java\\jdk1.12\\bin\\java.exe -jar C:\\Users\\Я\\Documents\\MyProjects\\MyProgram\\dist\\MyProgram.jar");
будет не совсем правильно.
Конечно, я могу попробовать импортировать класс из MyProgram.jar, поместив его в каталог, где его увидит компилятор, но какая гарантия что файл MyProgram.jar после этого не будет перекомпилирован и переложен в другой каталог? Есть ли в Java более гибкие механизмы запуска сторонних java-приложений?
Извините что спрашиваю, но после тщательного поиска я ответа так и не нашёл.
Deimos3, не надо класть в каталог, который увидит компилятор. Надо загружать из classpath, который видит виртуальная машина. Это самый гибкий метод запуска java-приложения.