Недавно я узнал о том, что JavaFX не включен в Java 11, и у меня возник вопрос о том, как это будет работать.
Прямо сейчас я поддерживаю приложение, которое нацелено на Java 8, использует в основном Swing, но немного JavaFX, и имеет базу пользователей, не являющуюся разработчиком. Некоторые из этих пользователей работают на старых операционных системах, поэтому я бы хотел продолжить работу с Java 8.
Однако Java 11 выйдет в следующем месяце, и я обеспокоен тем, что некоторые пользователи более новых операционных систем обновятся до Java 11, и компоненты JavaFX приложения перестанут работать.
Итак, каков наилучший путь вперед, если вы хотите продолжить ориентироваться на Java 8, но есть ли JavaFX для тех, кто устанавливает JRE 11? Я вижу несколько вариантов, ни один из которых не идеален:
- Требуется установка JavaFX отдельно. Если это так, мне нужно знать, какое издание - скорее всего, специфичный для ОС SDK от https://gluonhq.com/products/javafx/? Не идеально, поскольку это очередная установка, но у меня уже есть инструкции по установке Java для тех, у кого его нет.
- Пакет JRE и JavaFX, и есть сценарии запуска, которые заставляют использовать этот JRE. Не идеально, потому что размер загрузки резко увеличился бы, и это потребовало бы отдельных загрузок для каждой ОС, но я уже делал дистрибутивы, которые объединяют JRE.
- При обнаружении Java 11+ используйте Swing вместо JavaFX. Я потенциально мог бы сделать это, так как мое приложение начиналось как Swing, и мигрировала только часть, но это также не привлекательно, так как более новая, специфичная для JavaFX функциональность, которую я добавил, была бы потеряна.
- Попробуйте включить среду выполнения JavaFX в виде файла .jar и вручную загрузить его в путь к классам, возможно, только если обнаружена Java 11+?
Мне любопытно, что вы думаете, и если есть лучший вариант, я пропустил. Я не ожидал, что JavaFX будет удален из JRE когда-нибудь, когда я его принял!