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

add-exports VM选项的替代方案 可通过Maven或module-info实现吗

解决方案

为什么module-info.java无法实现需求

--add-exports 是JVM层面的启动参数,作用是在运行/编译时强制覆盖第三方依赖模块的导出规则。你自己项目的module-info.java只能定义当前模块的导入、导出权限,无权修改javafx.base这类第三方模块的内置导出规则,所以在你的模块声明中写对应exports语句不会生效。

可落地的Maven配置方案

直接通过Maven插件将需要的VM参数纳入pom.xml管理,所有拉取代码的开发者不需要手动修改IDE配置即可生效:

  • 编译阶段配置:如果编译时就需要用到导出的内部包,配置maven-compiler-plugin
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
            <release>12</release>
            <compilerArgs>
                <arg>--add-exports</arg>
                <arg>javafx.base/com.sun.javafx.binding=com.jfoenix</arg>
                <!-- 其余需要的--add-exports参数按相同格式依次添加即可 -->
            </compilerArgs>
        </configuration>
    </plugin>
    
  • 运行阶段配置:如果使用mvn exec:java启动项目,配置exec-maven-plugin
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
            <mainClass>替换为你项目的主类全限定名</mainClass>
            <commandlineArgs>--add-exports javafx.base/com.sun.javafx.binding=com.jfoenix</commandlineArgs>
            <!-- 多个VM参数用空格分隔依次添加即可 -->
        </configuration>
    </plugin>
    

配置完成后刷新Maven项目,IDEA等主流IDE会自动识别上述参数,不需要开发者手动修改运行配置的VM选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 02:57:02