java - 将 JavaFX 导出到可运行 jar 不起作用
问题描述
我的代码在 Eclipse 中运行良好。我正在使用 xubuntu。包括包(在导出过程中选择适当的单选框)并不能解决问题。这就是我得到的java -jar toast.jar
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 com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
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:564)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
感谢您的时间!
解决方案
为 JavaFX 应用程序创建可执行 jars 很困难,并且由于各种原因没有多大意义。今天要走的路是使用 JDK 14 中的新 jpackage 工具。您可以在此处找到教程和代码示例:https ://github.com/dlemmermann/JPackageScriptFX
推荐阅读
- python - Tensorflow、CNN + LSTM:重用 CNN 的更简单方法?
- c# - 更改 ASP.NET Core MVC 中的默认 cookie 名称
- python - 在for循环中传递多个参数的方法?
- python - datetime.time 之间的时间差
- python - 解析嵌套属性
- datetime - 在返回类型期间在 Flutter 中格式化日期和时间
- swift - Swift 中的信号量不适用于 Firebase 身份验证
- python-3.x - 将列表元素添加到 csv
- java - 我正在尝试使用 Spring 构建电子商务网站。我添加了购物车功能。但是当我点击订单按钮时,购物车没有更新
- laravel - 将 Argon Dashboard for laravel 安装到我的 laravel 项目后无法渲染 vuejs 组件