Как сделать чтобы программа перезапускалась

Как сделать чтобы программа перезагружалась когда нажимаешь JButton программа закрывается и автоматически открывается?

Ответы (2 шт):

Использовать такое можно только в крайнем случае. В моем кейсе это была невозможность убить статику, внутри зависимости.

Есть один способ, он не стабилен по ряду причин, имеет недостатки, однако я им пользовался и в предсказуемом окружении он работал и работает по сей день.

Суть в запуске нового экземпляра jvm с теми же аргументами, с которыми запущен текущий экземпляр, который Вы хотите перезапустить, и немедленном завершении работы текущего экземпляра.

  1. Создайте для запуска приложения bat или sh файл.
  2. Привяжите на кнопку запуск этого файла через Runtime.exec() и потом завершайте работу Вашей программы.

Конечно можно довести до ума метод и находить и запускать нужную jvm из кода, но мне это не было надо и я этого не делал.

Большой недостаток этого способа — это не сработает в ide или надо еще придумывать как сделать так, чтобы это заработало в ide, если Вам это вдруг необходимо.

При включении компьютера открываются программы, как закрыть программы автозапуск

Я остановился на рантайме.

P.S. собрал пример, который работает из ide (у меня idea), допилить до ума предлагаю уже по месту =) тут можно дорабатывать его еще долго, прокинуть аргументы jvm например, учесть запуск из jar и тому подобные кейсы, общий принцип остается тот же.

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.WindowConstants; import java.awt.BorderLayout; import java.awt.Dimension; public class Restart < public static final String Q = «»»; public static void main(String[] args) < JButton button = new JButton(«close»); button.addActionListener(evt -> < try < Classclazz = Restart.class; String classPath = clazz.getProtectionDomain().getCodeSource() .getLocation().toString().split(«file:/»)[1]; String javaHome = System.getProperty(«java.home»); String cmd = Q + javaHome + «/bin/java» + Q + » -cp » + Q + classPath + Q + » » + clazz.getSimpleName(); System.out.println(«cmd = » + cmd); Runtime.getRuntime().exec(cmd); System.exit(0); > catch (Exception e) < System.out.println(«cannot restart»); >>); JFrame frame = new JFrame(«restart jvm»); frame.setLayout(new BorderLayout()); frame.add(button, BorderLayout.SOUTH); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(new Dimension(300,100)); frame.setLocationRelativeTo(null); frame.setVisible(true); > >

Читайте также:
В какой программе сохранить фотошоп

Источник: husl.ru

Как сделать чтобы программа перезагружалась по нажатию кнопки [Java]

Как сделать чтобы программа перезагружалась когда нажимаешь JButton программа закрывается и автоматически открывается?

Отслеживать
задан 28 мар 2019 в 0:36
81 7 7 бронзовых знаков

Написать другую программу, которая будет запускать и останавливать нужную программу по нажатию кнопки

Как сделать чтобы консоль Python не закрывалась

28 мар 2019 в 3:32
зачем вам требуется перезагрузка программы?
24 мая 2019 в 8:21

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Использовать такое можно только в крайнем случае. В моем кейсе это была невозможность убить статику, внутри зависимости.

Есть один способ, он не стабилен по ряду причин, имеет недостатки, однако я им пользовался и в предсказуемом окружении он работал и работает по сей день.

Суть в запуске нового экземпляра jvm с теми же аргументами, с которыми запущен текущий экземпляр, который Вы хотите перезапустить, и немедленном завершении работы текущего экземпляра.

  1. Создайте для запуска приложения bat или sh файл.
  2. Привяжите на кнопку запуск этого файла через Runtime.exec() и потом завершайте работу Вашей программы.

Конечно можно довести до ума метод и находить и запускать нужную jvm из кода, но мне это не было надо и я этого не делал.

Большой недостаток этого способа — это не сработает в ide или надо еще придумывать как сделать так, чтобы это заработало в ide, если Вам это вдруг необходимо.

Я остановился на рантайме.

P.S. собрал пример, который работает из ide (у меня idea), допилить до ума предлагаю уже по месту =) тут можно дорабатывать его еще долго, прокинуть аргументы jvm например, учесть запуск из jar и тому подобные кейсы, общий принцип остается тот же.

Читайте также:
Лучшие программы для записи видео с экрана для игр для слабых ПК

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.WindowConstants; import java.awt.BorderLayout; import java.awt.Dimension; public class Restart < public static final String Q = «»»; public static void main(String[] args) < JButton button = new JButton(«close»); button.addActionListener(evt -> < try < Classclazz = Restart.class; String classPath = clazz.getProtectionDomain().getCodeSource() .getLocation().toString().split(«file:/»)[1]; String javaHome = System.getProperty(«java.home»); String cmd = Q + javaHome + «/bin/java» + Q + » -cp » + Q + classPath + Q + » » + clazz.getSimpleName(); System.out.println(«cmd = » + cmd); Runtime.getRuntime().exec(cmd); System.exit(0); > catch (Exception e) < System.out.println(«cannot restart»); >>); JFrame frame = new JFrame(«restart jvm»); frame.setLayout(new BorderLayout()); frame.add(button, BorderLayout.SOUTH); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(new Dimension(300,100)); frame.setLocationRelativeTo(null); frame.setVisible(true); > >

Источник: ru.stackoverflow.com

Пакетный скрипт для условного перезапуска приложения

Обычные системные и / или окружающие события, такие как восстановление из режима ожидания или потеря сетевого подключения, могут вызвать проблемы для определенных приложений, которые ожидают, что они всегда будут включены и подключены. Поэтому, если у вас есть определенное приложение, которое выходит из строя или переходит в режим «не отвечает» довольно часто, и перезапуск является единственным исправлением для него, у нас есть простое исправление для вас в виде настраиваемого пакетного сценария, позволяющего просто убить приложение и перезапустите его.

В дополнение к очевидной ситуации, описанной выше, этот скрипт может использоваться для различных полезных задач, таких как:

  • Легко перезапустите приложение, дважды щелкнув или используя горячую клавишу.
  • Перезапускайте программу только тогда, когда она зависла или не отвечает.
  • Запустите как запланированное задание, чтобы приложение всегда работало.
  • В любом другом месте вы хотите автоматизировать условный перезапуск приложения.

Настройка сценария должна быть достаточно понятной для комментариев, поэтому просто настройте сценарий соответствующим образом, и все готово.

Сценарий

Вывод

В то время как вы можете найти приложения, которые выполняют в основном ту же функцию, использование простого сценария, такого как этот, позволяет избежать запуска «еще одной программы» в фоновом режиме.

Читайте также:
Программа которая взламывает все игры на Андроид

Источник: gadgetshelp.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru