JavaFX代码在application包正常,其他包运行报错求助
问题解决步骤
1. 修正模块导出权限(核心解决第二个异常)
你的第二个异常明确指向权限问题:module Test1 does not export zwischenuebungen to module javafx.graphics。这是因为JavaFX启动器需要通过反射实例化你的LayoutContainer类(继承自Application),而Java模块系统默认禁止跨模块的反射访问,必须显式导出目标包。
打开项目根目录下的module-info.java文件,添加导出新包的语句:
module Test1 { requires javafx.controls; requires javafx.fxml; // 保留原application包的导出(如果仍需使用) exports application; // 新增该行,将新包导出给javafx.graphics模块 exports zwischenuebungen to javafx.graphics; }
2. 检查并修正JavaFX模块路径配置(解决第一个异常)
第一个异常Module javafx. not found说明JavaFX模块未被正确加载,需要确认Eclipse运行配置的VM参数和模块路径:
- 右键项目 → 「Run As」→ 「Run Configurations...」
- 左侧选中你的JavaFX运行配置,切换到「Arguments」标签页
- 确保VM参数中的JavaFX模块路径配置正确,格式示例:
注意替换为你实际的JavaFX SDK lib目录路径,模块列表要包含项目用到的所有JavaFX模块(比如javafx.controls、javafx.fxml等)--module-path "你的JavaFX SDK安装路径\lib" --add-modules javafx.controls,javafx.fxml - 切换到「Main」标签页,确认「Main class」选择的是新包下的
zwischenuebungen.LayoutContainer,而非原application包下的类
3. 验证修复
保存修改后,重新运行项目:
- 若仍报错,执行「Project → Clean...」清理项目,再重新编译运行
- 确保
LayoutContainer类是public修饰的,JavaFX启动器需要访问公共构造方法
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

