Java 8 + JavaFXに移行したいアプリケーションを持っていますJava 11。ネットワークであり、彼らはこの小さなアプリケーションを使用できます。私は、JavaFXをインターフェースに使用し、sqlite-jdbcを使用してデータベースを生成しています。
私はmodule-info.Javaを持っています。コンパイルは問題ないようです。エラーはありません。しかし、アプリケーションを実行すると、次のエラーが発生します。
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: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.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:566)
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:834)
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:566)
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
私のmodule-info.Java
module AutoGeneratorOpenData {
requires javafx.base;
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
requires sqlite.jdbc;
requires Java.sql;
requires Java.desktop;
exports autogeneratoropendata;
}
Netbeans 9をWindows 10 x64bitsで使用していますJavaFX Windows SDK(最後のバージョン11)。私はMavenを使用していません(しかし、おそらく必要ですか?)。
それを修正するアイデアはありますか?
そのため、いくつかの行方不明の図書館があります。
Windowsでは、不足しているDLLからjavafx-sdk-11/binは少なくともprism_d3d.dll、prism_sw.dll、javafx_font.dll、glass.dllです。すべてをjdkディレクトリに配置できますC:\Program Files\Java\jdk[...]\bin
(これは最善の解決策ではありません)、または 。[...]\jlink\bin\
内のカスタムJREのjlinkディレクトリに
Linuxでは、javafx-sdk-11/-libから欠落している.soは少なくともlibprism_es2.os、libprism_sw.so、libglass.so、libglassgtk3.so(およびおそらく古い構成ではlibglassgtk2.soでもあります) )、libjavafx_font.so、libjavafx_font_freetype.so、libjavafx_font_pango.so;たとえば、すべてを/usr/lib/jvm/Java-11[...]/lib
に入れることができます(これは最良の解決策ではありません)、または[...]/jlink/lib
内のカスタムJREのjlinkディレクトリに。
Macでは、jav javafx-sdk-11/-libから欠落している.dylibは(推測)libprism_es2.dylib、libprism_sw.dylib、libglass.dylib、libjavafx_font.dylib [確認するには]でなければなりません。
Jlinkを使用するには、jmodを使用する必要があります。librairyファイルを使用する必要はありません。
そして、私のmodule-info.Javaは実際には完全ではありませんでした。
module AutoGeneratorOpenData {
requires sqlite.jdbc;
requires javafx.controls;
requires javafx.graphics;
requires Java.sql;
requires Java.desktop;
requires javafx.fxml;
requires javafx.base;
exports autogeneratoropendata;
exports autogeneratoropendata.controller;
exports autogeneratoropendata.model;
exports autogeneratoropendata.util;
opens autogeneratoropendata.controller;
}
今では機能しています。
Windowsで、javafx-sdk-11/binを含むようにPATH変数を更新しました。
また、Eclipse(この場合ではないことを知っています)とMavenを使用している場合、プラットフォーム固有のjavafx-graphicsライブラリ(win、mac、linux)の依存関係を追加すると、この問題が発生することに注意してくださいMavenを介してビルドします。理由は完全にはわかりません。
私は、pomのプラットフォーム依存の依存関係を削除し、最終的に実行する前に、ゴールでちょうどきれいなjavafx:runを実行しようとして、壁に頭を打ちました。