Я уже несколько часов пытаюсь запустить приложение JavaFX с помощью расширения для удаленной разработки Visual Studio в контейнере Docker. Я хочу переслать график c приложения с помощью X11. Я уже интегрировал необходимые пакеты для X11 в контейнер, установил переменную среды DISPLAY и установил сокет X11 в контейнер (/tmp/.X11-unix/). К сожалению, так работать не будет ... Всякий раз, когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:
root@c0699153fc1c:/workspaces/JavaFX/src# java --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls,javafx.fxml HelloWorldApplication.java
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
Я использую openjdk: 11 в качестве базового образа для docker контейнер и установил внутри него следующие пакеты:
- openjfx
- libx11-dev
- libxext-dev
- libxrender-dev
- libxtst-dev
Ранее я уже пытался запустить IntelliJ в контейнере Docker, который работает нормально. GUI перенаправляется на мой дисплей, а также там прекрасно работают приложения JavaFX.
Буду признателен за любую помощь в этом вопросе. Может быть, я что-то наблюдаю.
РЕДАКТИРОВАТЬ: Я думаю, что нашел проблему. Кажется, что OpenJDK: 11 и OpenJFX не работают должным образом, даже несмотря на то, что я следовал тоннам учебников ... Итак, теперь я экспортировал JDK, который поставляется с IntelliJ IDEA, и смонтировал его в контейнер, который создается. Кодекса VS. После компиляции файла. java с помощью смонтированного компилятора и его выполнения он работал безупречно.
Так что теперь моя единственная проблема заключается в том, что мне нужна рабочая установка в VS Code для работы приложений JavaFX -> так правильная конфигурация OpenJDK и OpenJFX.