Я хочу закрыть и перезапустить уже запущенное приложение (автоматически), которое я создаю, нажав кнопку или что-то в этом роде, я хочу сделать это с целью повторного запуска приложения на другом языке, я новичок в JavaFx и Java в целом, пожалуйста, можете ли вы дать мне решение этой проблемы?Перезапустить приложение в JavaFx
ответ
Этот вопрос не имеет деталей. Вы упоминали приложение JavaFX, но важно знать, как развертывается это приложение. Работает ли он в веб-браузере, как приложение Java-webstart, автономная банка или автономное собственное приложение? С чего начать приложение? Ответ на эти вопросы облегчит ответ на ваш вопрос со спецификой.
Хотя следующий пример не является JavaFX, используемый здесь подход будет работать для некоторых способов развертывания приложения JavaFX. Один из способов перезапуска приложения, который хорошо работает, - это запустить приложение из сценария. Внутри скрипта будет цикл while, который постоянно перезапускает программу на основе кода выхода программы. Вот пример для сценария оболочки Баша, который начинается IntelliJ на платформе Linux:
while true ; do
eval "$JDK/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME $*
test $? -ne 88 && break
done
В этом примере сценарий запуска проходит «jb.restart.code» в качестве параметра приложения. Если IntelliJ хочет перезапустить, он вернет это значение 88 в качестве кода выхода. Сценарий проверяет код выхода приложения и перезапускает приложение, если значение равно 88.
Этот подход хорошо работает на большинстве платформ, но требует, чтобы приложение запускалось через скрипт.
Как насчет собственного автономного приложения? –
Если это собственное автономное приложение, то какая ОС является родной?Эти детали влияют на ответ. – axiopisty
В настоящее время я реализовал решение Windows с помощью exec, за которым следует System.exit(). Я думаю, что Linux и MacOS будут следовать одному и тому же пути с относительными командами оболочки. –
Одним из решений является передача командной строки и рабочего каталога в стартовом скрипте на ваш основной() метод. Используя ProcessBuilder, вы можете перезапустить приложение. Другая возможность заключается в том, чтобы запустить все приложение в пользовательском загрузчике классов (например, проект Spring имеет подходящие загрузчики классов в исходной базе), затем вы можете в принципе перезапустить, запустив свой основной в другом загрузчике классов, однако затем вам необходимо надлежащее обслуживание для бесплатных потоков и ресурсов первый экземпляр.
Ну, я на самом деле очень новичок в этом, и я немного смущен и не получая ответа, можете ли вы, пожалуйста, показать мне какой-то код, который может помочь или обратиться к статье, объясняющей это, thx – AymenDaoudi
Ну, действительно, Classloader thingy довольно сложный, лучше попробуйте подход командной строки. Вы можете начать процесс ОС с Java, поэтому вам нужно знать, где находится исполняемый файл java, и как устанавливается путь к классам. Вы можете найти про путь к классу, используя System.getProperty («java.class.path») или аналогичный. Расположение java.exe, вы должны перейти к вашему приложению во время запуска. Использование Runtime.getRuntime(). Exec (..) или просто ProcessBuilder позволит вам начать полную копию вашего приложения. –
Я попробую это и посмотрю, THX для вашей помощи – AymenDaoudi
retstart.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
if(getOnCloseRequest()!=null){
getOnCloseRequest().handle(new WindowEvent(getScene().getWindow(), WindowEvent.WINDOW_CLOSE_REQUEST));
//write code to invoke application instance again
}else{
close();
}
}
});
- 1. Как «перезапустить» приложение JavaFX?
- 2. Как перезапустить программу в JavaFX
- 3. Как перезапустить приложение в JavaFx, построенном с помощью FXML?
- 4. Перезапустить приложение в AS3
- 5. Как перезапустить приложение WPF?
- 6. Как «перезапустить» приложение ios
- 7. Как полностью перезапустить приложение?
- 8. Как перезапустить приложение WPF?
- 9. Перезапустить приложение, когда ошибка
- 10. Можно перезапустить приложение программно
- 11. Как перезапустить приложение Java?
- 12. Как перезапустить приложение?
- 13. Как перезапустить запущенное приложение
- 14. Перезапустить приложение Java Swing
- 15. Перезапустить приложение программно
- 16. Перезапустить приложение программно?
- 17. Как перезапустить поисковое приложение
- 18. Перезапустить приложение Eclipse
- 19. Как перезапустить приложение в Java?
- 20. Как перезапустить приложение в UWP?
- 21. Перезапустить приложение при сбое
- 22. Как перезапустить приложение Cocos2D?
- 23. Перезапустить приложение, используя C#
- 24. программно перезапустить ионное приложение
- 25. Перезапустить приложение самостоятельно
- 26. Как перезапустить приложение, когда приложение закрывает силу
- 27. Перезапустить приложение при каждом запуске?
- 28. Перезапустить приложение автоматически на KILL
- 29. Android, как надежно перезапустить приложение
- 30. JQuery Mobile, Как перезапустить приложение
Да, ваш вопрос об этом. Но почему вам нужно перезапустить приложение, чтобы изменить язык? Может быть, его можно изменить без повторного запуска? Какова языковая конфигурация вашего приложения? –
Ну, я мало знаю об этих механизмах, я хочу перезапустить приложение, чтобы переопределить все объекты/элементы управления на другом языке. – AymenDaoudi
Проверьте решение @ UlukBiy на [JavaFX 2 и интернационализацию] (http://stackoverflow.com/questions/10143392/javafx-2-and-internationalization). – tarrsalah