JavaFx:无法创建播放器

标签 java javafx java-platform-module-system javafx-11 jlink

我正在编写一个针对 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/

相关文章:

java - 使用 java 套接字发送和接收多个 JSON 文件

使用 Protocol Buffer 进行 Java 序列化

javafx - 在哪里可以找到 JDK 8/JavaFX 8 源代码?

java - 如何解决 Java 9 中的拆分包问题

java - 如何在主循环中实现 Graphics 类?

Java多线程变得更慢

Eclipse/Java9 : how to access internal javafx packages?

java - 设置舞台图标

java - JPMS : --add-opens doesn't work for java. lang.reflect.InaccessibleObjectException

java - generate-module-info jdeps 时缺少依赖项