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

JavaFX项目报错:ImageIO与BufferedImage不可见该如何修复

问题修复方案

你遇到的是Java 9+模块化系统导致的JDK内置模块可见性问题,同时现有POM配置存在版本不匹配问题,按以下步骤修复即可:


步骤1:修复java.desktop模块可见性(二选一即可)

方案A:项目使用模块化(存在module-info.java)

如果项目src/main/java目录下有module-info.java文件,直接在模块声明中添加java.desktop依赖即可:

module com.mycompany.realestate2021 {
    // 保留原有其他声明,比如requires javafx.controls;等
    requires java.desktop; // 新增此行,引入ImageIO、BufferedImage所属模块
    exports com.mycompany.realestate2021;
}

方案B:项目未使用模块化(无module-info.java)

给Maven插件添加模块引入参数即可:

  1. 修改maven-compiler-plugin配置,添加编译时模块参数:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <release>17</release>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>java.desktop</arg>
        </compilerArgs>
    </configuration>
</plugin>
  1. 修改javafx-maven-plugin配置,添加运行时模块参数:
<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <!-- 保留其他原有配置 -->
    <configuration>
        <mainClass>com.mycompany.realestate2021.App</mainClass>
        <options>
            <option>--add-modules</option>
            <option>java.desktop</option>
            <!-- 保留原有其他option配置 -->
        </options>
    </configuration>
</plugin>

步骤2:修正POM版本不匹配问题

你当前使用OpenJDK17、OpenJFX17,现有POM配置版本不一致,需要同步修改:

  1. 修正properties节点的编译版本,统一管理JavaFX版本:
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <openjfx.version>17</openjfx.version>
</properties>
  1. 修正OpenJFX依赖版本,补充必要组件:
<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>${openjfx.version}</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        <version>${openjfx.version}</version>
    </dependency>
</dependencies>
  1. 升级JavaFX Maven插件到适配JDK17的版本:
<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.8</version> <!-- 原有0.0.4版本不兼容JDK17 -->
    <!-- 保留其他原有配置 -->
</plugin>

步骤3:验证配置生效

修改完pom.xml后,在NetBeans中右键项目选择「重新加载POM」或「清理并构建」,执行mvn clean compile确认编译报错消失,再执行mvn javafx:run验证程序运行正常即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:08