Как использовать JavaFX 11 в Eclipse? - PullRequest
0 голосов
/ 25 августа 2018

У меня проблемы с JavaFX. Я хотел начать создавать приложения, настольные или мобильные, хотя бы что-нибудь. Поэтому я обнаружил, что могу использовать для этого библиотеку JavaFX. Но, насколько я понял, это было исключено из JDK 9. На самом деле я использую OpenJDK 11 в Ubuntu 18 (хотя Eclipse пишет, что у меня есть среда JavaSE 10, в которой я тоже немного запутался), и я установил OpenJFX используя sudo apt install openjfx, и я не могу заставить Eclipse работать с JavaFX.

Я не уверен, есть ли смысл не использовать JDK 8 с включенным JavaFX, но в любом случае, как я могу использовать JavaFX в таких условиях в Eclipse?

Ответы [ 3 ]

0 голосов
/ 25 августа 2018

В вашем сообщении несколько пунктов, требующих уточнения.Я постараюсь ответить на них в разных пунктах:

Но, насколько я понял, он (JavaFX) был исключен из JDK 9.

JavaFX будет развязанс Oracle JDK начиная с JDK 11. Я подчеркиваю Oracle JDK, потому что JavaFX никогда не был частью OpenJDK.Даже в OpenJDK 8.

На самом деле я использую OpenJDK 11 в Ubuntu 18 (хотя eclipse пишет, что у меня есть среда JavaSE 10, я тоже немного сбит с толку)

Для поддержки Java 11 в Eclipse вам необходимо установить Поддержка Java 11 для плагина Eclipse Photon .

Вот несколько Примеров того, как запустить Java 11приложения в Eclipse

Я установил openjfx, используя sudo apt install openjfx, и не могу заставить Eclipse работать с JavaFX.

Я не уверен, есть ли смысл неиспользовать JDK 8 с включенным JavaFX, но в любом случае, как я могу использовать JavaFX в таких условиях в eclipse?

Поскольку OpenJDK 11 или Oracle JDK 11 не будут поставляться в комплекте с JavaFX, лучше всего либозагрузите JavaFX SDK с здесь или здесь и загрузите их в свою IDE.

Если вы используете инструменты для сборки, вы можете напрямую использовать JavaFXjar-файлы времени выполнения, доступные в Maven Central .

Для руководства по запуску JavaFX 11 в OpenJDK 11 вы можете выполнить следующие действия:

JavaFX 11 и Eclipse

На момент написания этого поста вам необходимо Eclipse 4.9M3 для работы сJavaFX 11.

Получив Eclipse, JDK 11 и JavaFX 11 SDK, вы можете выбрать:

  • Модульный проект
  • Немодульныйпроект (не требуется module-info.java)

Проект на основе модуля

Создание проекта Java и добавление JAR-файлов JavaFX из Java FX 11 SDK в путь к модулюпроекта.

enter image description here

Создайте module.info и объявите его зависимость от модуля javafx.controls.javafx11 - это имя пакета, содержащего ваш Java-файл.

module javafx11 {
    requires javafx.controls;
    exports javafx11;
}

Запустите программу \ o /

Немодульный проект

Создайте проект Java и добавьте jar-файлы JavaFX из Java FX 11 SDK в либо путь к модулю или путь к классу проекта.

Добавьте следующие параметры JVM в конфигурацию запускапроекта:

--module-path=path-to-javafx-skd/lib --add-modules=javafx.controls

Запустить программу \ o /

0 голосов
/ 19 мая 2019

Мне пришлось пройти через это примерно на 20 компьютерах, поэтому я сделал следующий контрольный список:

[ ] download javafx11 from javafx11's website, put on desktop
[ ] create a MODULE based project
[ ] right click project, go to BUILD PATH
[ ] add the downloaded javafx.base/control/graphics as external jar files
[ ] put the files in a package (eg: my_big_package)
[ ] put the following in the module.java file:
module javafx11 {
    requires javafx.controls;
    exports my_big_package;
}
[ ] eat a donut from the break room

Если вы не женаты на Eclipse и / или просто пытаетесь учиться (или являетесь студентом с бесполезным профессором / TA), в BlueJ в настоящее время уже встроен JavaFX и он готов к работе, так что никакой дополнительной настройки или загрузки не требуется является необходимым. Ухоженная!

0 голосов
/ 25 августа 2018

ТЛ; др

Чтобы легче всего начать работу с JavaFX, используйте версию Java 8 под брендом Oracle, где JavaFX 8 поставляется в комплекте и легко доступен.

Технические подробности см. Использование JavaFX в JRE 8 . Посмотрите Связанные и Связанные разделы веб-страницы для многих связанных сообщений.

Модуляризация Java

Платформа Java находится в процессе широкой переформулировки, известной как modularization .

Раньше Java SE (стандартная версия) был одним большим монолитом программного обеспечения, постоянно растущим с добавлением все новых и новых. Ни одно приложение никогда не использует все это.

Было принято решение разбить Java SE на множество отдельных кусков, которые формально должны быть определены как «модули». Одним из основных преимуществ является то, что приложение может быть связано с исполняющей средой Java SE, состоящей только из фактически необходимых модулей, без неиспользуемых модулей. См. Инструмент jlink .

Как побочный продукт этой модульности, некоторые более старые и менее популярные части, такие как CORBA , удаляются, чтобы больше не переноситься как стандартная часть Java (хотя и предлагается для других сторон забрать их) если они так решат). Аналогично, некоторые связанные с Java EE модули будут удалены из Java SE и переданы в проект Jakarta EE , который, по логике, является более подходящим домом. См. JEP 320: Удалить модули Java EE и CORBA .

Процесс модульности и реорганизации требует многолетних усилий. Многое было сделано в Java 9 и Java 10. Некоторые последние шаги выполняются в Java 11.

Одним из этих шагов, предпринимаемых в Java 11, является прекращение связывания JavaFX с Java SE. См:

Таким образом, начать работу с JavaFX прямо сейчас будет проще, если сделать это с Java 8. Библиотеки JavaFX связаны с Java 8. И вам не нужно изучать модульность, не нужно бороться со своей IDE (такой как Eclipse) и настройки проекта для распознавания модулей. Если у вас нет острой необходимости использовать самые последние версии Java или JavaFX, придерживайтесь 8, пока процесс модульности и инструменты не сгладятся, вероятно, в следующем 2019 году.

Если вы настаиваете на использовании Java 11, вам нужно узнать о:

  • Модуляризация Java в целом, включая файл module-info.java .
  • Обновление вашей IDE (Eclipse и т. Д.) И других инструментов до более поздних версий, поддерживающих как модуляризацию, так и Java 11.
  • Настройка модулей в ваших инструментах сборки, таких как Maven или Gradle
  • Настройка модулей в вашей IDE, например Eclipse
  • Загрузка модулей JavaFX или использование менеджера зависимостей, такого как Maven, для этого

Этих пунктов слишком много, чтобы их здесь освещать, и они были рассмотрены во многих других Вопросах о переполнении стека. Кроме того, Java 11 официально еще не выпущен.

Возможно, эта статья поможет, Как создать проект с JavaFX на JDK 11 .

Чтобы узнать больше о модульности Java, прочитайте блог и книгу Система модулей Java , написанную Николаем Парлогом.

...