首页 >Java >java教程 >如何解决运行 JavaFX 11 应用程序时的 JavaFX 媒体模块错误?

如何解决运行 JavaFX 11 应用程序时的 JavaFX 媒体模块错误?

DDD
DDD原创
2024-12-20 17:49:12520浏览

How to Resolve JavaFX Media Module Errors When Running a JavaFX 11 Application?

运行 JavaFx 媒体应用程序时出现模块错误

问题:

使用中提供的命令运行 JavaFX 11 应用程序时问题是,遇到与 javafx.media 和 javafx.graphics 中的类之间的非法访问相关的错误

解决方案:

要解决错误并成功运行应用程序,请确保在应用程序启动期间将 javafx.media 模块解析为命名模块。这可以通过以下方法之一来完成:

1.将模块包含在 --add-modules 参数中:

修改命令以将 javafx.media 作为附加模块包含在 --add-modules 参数中:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
-p ~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11.jar:
~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11-linux.jar 
--add-modules javafx.controls,**javafx.media**
-classpath ...

2.使您自己的代码模块化:

在项目目录中创建一个 module-info.java 文件,其中包含以下内容:

module my.application {
    requires javafx.controls;
    requires javafx.media;

    // Replace with your Application class' package
    exports com.example.myapp to javafx.graphics;
}

然后,启动您的应用程序使用 --module 参数指定您的自定义模块:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
--module my.application
--add-modules javafx.base,javafx.graphics,javafx.controls
-classpath ...

3.使用包含 JavaFX 的 JDK:

下载包含 JavaFX 的 JDK,例如 BellSoft Liberica 或 Azul Zulu,并使用它来运行您的应用程序。

其他注释:

  • 建议避免同时放置JavaFX JAR 文件和 JavaFX 模块同时位于类路径上。这可能会导致问题中描述的错误。
  • 如果您在更改为模块化代码后遇到与缺少符号相关的编译错误,请确保您安装了最新的 Java 开发工具包 (JDK)。
  • 有关模块化和 Java 平台模块系统的更多信息,请参阅 JavaFX 文档:https://openjfx.io/javadoc/11/javadoc/index.html

以上是如何解决运行 JavaFX 11 应用程序时的 JavaFX 媒体模块错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn