Внешнее приложение закрывается при закрытии JFrame

1

Я написал программу java для открытия внешнего приложения, когда я нажимаю кнопку.

Runtime.getRuntime().exec(command);

Когда я нажимаю кнопку, соответствующая команда будет передана аргументу exec, например, в окнах

Runtime.getRuntime().exec(
    "C:\\ProgramFiles\\Google\\Chrome\\Application\\chrome.exe")

Кнопка добавлена в JFrame Этот код отлично работает в обоих окнах и ubuntu (если правильная команда передана). Но в Ubuntu, если я открываю внешнее приложение, а затем закрываю JFrame внешнее приложение также закрывается с помощью JFrame. но мне нужно сохранить внешнее приложение open.even jframe закрыто (например, окна)

Теги:
jframe

2 ответа

0

при вызове внешнего приложения из приложения java, приложение JAVA является родительским процессом, а внешнее приложение будет дочерним процессом. Если вы проверите статус процесса в ubuntu после запуска внешнего приложения, он покажет вам оба процесса с разными значениями. Теперь, когда JVM запускает внешнее приложение (как новый поток), он будет выполняться там до тех пор, пока родитель не будет жив, когда вы закроете приложение java, он также закроет все дочерние процессы.

0

Runtime.exec() возвращает объект Process. Вы можете использовать это, чтобы убить внешнее приложение:

Process p = Runtime.getRuntime().exec(command);
p.destory();

Редактировать:

Если ваша цель - сохранить запущенное внешнее приложение, запущенное после закрытия Java-программы, вы должны запустить его при start Windows. Чтобы получить дополнительную информацию о том, как использовать это, в окне командной строки введите следующее:

start /?
  • 0
    на самом деле мне нужно держать внешнее приложение открытым. даже jframe закрыт
  • 0
    Затем запустите его с помощью команды start Windows.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню