Я столкнулся со следующим RuntimeException при запуске приложения, использующего JavaFX 11+:
Graphics Device initialization failed for : d3d, 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:243)
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.launchApplicationWithArgs(LauncherImpl.java:409)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
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)
at java.base/java.lang.Thread.run(Thread.java:835)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: No toolkit found
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
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.launchApplicationWithArgs(LauncherImpl.java:409)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
... 5 more




После загрузки JavaFX 11+ извлеките файл, а когда файл будет извлечен, переключитесь на IntelliJ IDEA. Затем выполните следующие действия в IntelliJ IDEA.
Теперь вы перемещаете указатель мыши под «+» и нажимаете правой кнопкой мыши на библиотеку, которую вы назвали «javafx12», теперь открывается небольшое окно с различными параметрами, но после этого вы нажимаете указатель мыши на «Добавить в модули». вы перемещаете указатель мыши на папку «src» и щелкаете правой кнопкой мыши. Теперь откройте широкое окно с различными параметрами, но вы выбираете параметр «Создать», теперь открыто широкое окно со многими различными параметрами, но вы снова выбираете «module-info.java», и теперь вы копируете этот текст:
module YOUR-PROJECT-NAME {
requires javafx.graphics;
requires javafx.controls;
requires javafx.media;
requires javafx.base;
requires javafx.web;
requires javafx.swing;
requires javafx.fxml;
opens application;
}
Это решает проблему.
Вам не нужно включать все в информацию о модуле, только те части, которые вы используете. Минимум, кажется, это база, элементы управления и графика. (Мой код использует их и fxml.) Например, если вы не используете свинг или медиа, javafx.swing и javafx.media можно опустить. Инструментарий рендеринга, часть которого не была найдена, находится в бинарном файле для Windows. Он находится в каталоге javafx-sdk/bin. Этот каталог должен быть частью java.library.path. Если вы используете модули, javafx-sdk/lib может быть частью пути к модулю. (Конечно, конкретная версия является частью имени каталога javafx-sdk.)
Загрузите JavaFX Windows SDK по ссылке ниже.
https://gluonhq.com/products/javafx/
и используйте параметры ниже в аргументе VM при запуске приложения FX
-p $ModuleFileDir$/lib/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.base,javafx.fxml,javafx.graphics,javafx.media,javafx.web --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED
Примечание: Ничего не меняйте в скачанной папке: используйте как есть. Файлы DLL важны; если файлы DLL отсутствуют, появляется указанная выше ошибка.
Ваша записка была ключевой. Я не использовал ничего, кроме --add-modules. Не открывается и не экспортируется.
Решение, которое сработало для меня, состояло в том, чтобы добавить каталог \bin JavaFX SDK в java.library.path. Это имеет тот же эффект, что и копирование файлов из папки bin по пути JAVA_HOME, но сохраняет изменение для конкретного проекта.
File -> Project Properties -> Run
-Djava.library.path = "C:\path\to\javafx-sdk-11.0.2\bin"
Я настоятельно рекомендую использовать maven для создания программы JavaFX. Подход проиллюстрирован на семинаре Intellij по JavaFX. связь Однако; есть простое решение этой проблемы. вам нужно извлечь все содержимое JavaFX SDK; затем добавьте библиотеки, не удаляя и не изменяя другие подпапки. если вы просто скопируете подпапку lib, она не будет обращаться к папкам в подпапке bin
Я столкнулся с той же проблемой. Оказывается, я скачал версию aarch64 вместо x64. https://gluonhq.com/products/javafx/
У меня была такая же проблема, по ошибке я скачал архив x86 вместо x64 для своей Windows 10. Так что теперь все работает нормально
рад, что вы нашли решение :) вы можете опубликовать его как ответ (на свой собственный вопрос) - это сделает его более узнаваемым для других