Не удается интегрировать SWT с JavaFX под JDK "Zulu" 11 - PullRequest
0 голосов
/ 30 октября 2019

Мы хотим использовать SWT и JavaFX в плагине Eclipse в нашем приложении RCP. К сожалению, у нас возникают проблемы при интеграции SWT с JavaFX под Java 11. В среде сборки используется e (fx) clipse 3.5. Мы разрабатываем версию JDK 11 для Azul Systems, выпущенную сообществом, в комплекте с версией AzJ OpenJFX.

Раньше мы разрабатывали под Java 8. В этот момент наша сборка использовалась во время компиляции. путь к классу, ссылающийся на jfxswt.jar, который находится в каталоге jre/lib JDK. Мы не использовали никаких специальных настроек пути к классам во время выполнения.

Мы сейчас пытаемся перейти на Java 11. Там этот JAR стал javafx-swt.jar и живет в каталоге libJDK. Кажется, больше не достаточно установить путь к классу для ссылки на этот JAR во время компиляции: кажется, что это необходимо делать и во время выполнения. Если мы этого не сделаем, мы получим ошибку (java.lang.NoClassDefFoundError: javafx/embed/swt/FXCanvas).

В качестве теста мы экспериментально внедрили javafx-swt.jar в JAR, реализующий наш плагин Eclipse. Затем мы сослались на него в файле .classpath этого плагина, и код работал, как и ожидалось. К сожалению, мы не можем встроить JAR таким образом по юридическим и другим причинам.

Примечание по модулям Java: javafx.swt не отображается в выводе, когда мы выполняем команду --list-module. Мы попытались запустить приложение, используя параметры -p /path/to/JDK/lib/javafx-swt.jar --add-modules javafx.swt, но, похоже, это не решило проблему.

Мой вопрос: есть ли способ настроить путь к классу или модулю, чтобы наш плагин Eclipse мог найтиэта библиотека в JRE? Любое решение должно работать с любой JRE, с которой запускается код (я думаю, что вполне нормально предполагать, что lib/javafx-swt.jar будет жить в этой JRE).

Поможет ли это использовать отдельно загруженный файл? версия OpenJFX, а не копия OpenJFX в нашем JDK?

Большое спасибо ☺

...