我正在编写一个针对 Java 13 的 JavaFx 应用程序。
我使用 gradle 和 openjfx 插件来构建我的项目。
以这种方式构建它,每次我尝试创建一个媒体播放器时,我都会得到:
MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player!```
我安装了所有必要的库,包括所有版本的 libav 54-58。我使用有效的 uri 格式。
然后,我尝试使用通过运行 jlink 创建的自定义 jre,并将所有 javafx 和标准模块添加到其中。
jlink --module-path=/path/to/jmods --add-modules=ALL-MODULE-PATH --output=/path/to/output
现在,当我启动应用程序并创建第一个窗口时,我得到了这个异常。但是我的音频播放器测试用例运行成功。
java.util.MissingResourceException: Can't find bundle for base name com.sun.javafx.tk.quantum.QuantumMessagesBundle, locale en_US
我尝试的最后一件事是使用我用版本 12 创建的较旧的 javafx jre。这个版本没有显示任何两个问题。
我的问题是我真的想使用从 gradle 获得的 javafx 模块,因为这样更新等变得更容易,我想稍后为我的应用程序创建一个自定义运行时。
最佳答案
我在 IntelliJ IDEA 的 Sample JavaFX 项目中也遇到了这个问题,使用 Java 13。
为了解决这个问题,我创建了一个名为 QuantumMessagesBundle.properties
的文件。内容如下:OverlayWarningESC = Press ESC to exit full-screen mode.
然后,我打开了/usr/lib/jvm/java-13-openjdk/lib/javafx-graphics.jar
并将此文件放在 com/sun/javafx/tk/quantum/QuantumMessagesBundle.properties
.
关于JavaFx:无法创建播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58880238/