在使用 JavaFX 进行编程时,模块化编程是 Java 9 引入的一个重要特性,它帮助我们更好地管理代码依赖和访问权限。然而,这也带来了新的挑战,尤其是在配置模块时。今天我们来探讨一个常见的问题:当你将 JavaFX 代码移到新的包中时,如何解决模块访问权限的错误。
问题描述
假设你正在使用 Eclipse 2024-03 和最新的 JavaFX SDK。你创建了一个新的 JavaFX 项目,在默认的application包内运行代码没有问题。但当你创建一个新的包,例如zwischenuebungen,并尝试在其中运行相同的代码时,可能会遇到以下错误:
Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx. not found即使解决了这个问题,你可能会遇到更多的错误,如:
Exception in Application constructor Exception in thread "main" java.lang.reflect.InvocationTargetException ... Caused by: java.lang.IllegalAccessException: class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) cannot access class zwischenuebungen.Lay