问题:
使用中提供的命令运行 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 11 应用程序时的 JavaFX 媒体模块错误?的详细内容。更多信息请关注PHP中文网其他相关文章!