You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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模块路径配置正确,格式示例:
    --module-path "你的JavaFX SDK安装路径\lib" --add-modules javafx.controls,javafx.fxml
    
    注意替换为你实际的JavaFX SDK lib目录路径,模块列表要包含项目用到的所有JavaFX模块(比如javafx.controls、javafx.fxml等)
  • 切换到「Main」标签页,确认「Main class」选择的是新包下的zwischenuebungen.LayoutContainer,而非原application包下的类

3. 验证修复

保存修改后,重新运行项目:

  • 若仍报错,执行「Project → Clean...」清理项目,再重新编译运行
  • 确保LayoutContainer类是public修饰的,JavaFX启动器需要访问公共构造方法

内容的提问来源于stack exchange,提问作者Felix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:17:23