• 但是编译时一直报错:Compilation failure不允许在使用 --release 时从系统模块 java.base 导出程序包,如何解决?


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 boofangfang001 2024-04-01 09:57 采纳率: 0% 浏览 11 首页/ 编程语言 / 但是编译时一直报错:Compilation failure不允许在使用 --release 时从系统模块 java.base 导出程序包,如何解决? javaxmlmaven 系统java版本:openjdk version "21.0.2" 2024-01-16OpenJDK Runtime Environment (build 21.0.2+13-58)OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing) 另外pom里已经配置了: org.apache.maven.plugins maven-compiler-plugin --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED 但是编译时一直报错:Compilation failure不允许在使用 --release 时从系统模块 java.base 导出程序包: 求技术达人们帮忙看看 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 码农阿豪 Java领域优质创作者 2024-04-01 09:57
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      这个错误是由于使用了 --release 参数时,系统模块 java.base 导出了一个程序包,而这个程序包并不允许在使用 --release 参数时被导出。解决这个问题可以尝试将 --add-exports 参数改为如下形式: --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED 这个修改将会限制仅在 java.base 模块中添加导出jdk.internal.org.objectweb.asm程序包,而不是在整个系统范围内进行添加导出操作。修改好之后重新编译应该就可以解决这个报错了。 示例代码: javac --release 11 --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED Main.java 其中,Main.java 为你要编译的源代码文件。
      评论
    • GISer Liu 2024-04-01 09:59
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      这个问题涉及到使用 Maven 编译时出现 Compilation failure 的错误,提示不允许在使用 \--release
      时从系统模块 java.base 导出程序包。根据你提供的信息,已经配置了 Maven Compiler 插件,但是仍然出现了这个错误。
      根据错误信息,可能是由于 \--release 参数与 \--add-exports 参数冲突导致的。\--release 参数用于指定编译器生成与特定版本兼容的类文件,而 \--add-exports 参数用于在编译时添加模块导出。
      解决这个问题的一种方法是将 \--add-exports 参数中的模块路径改为与 \--release
      参数对应的版本兼容的路径。例如,如果使用的是 Java 17 版本,可以将 \--add-exports 参数改为:
      xmlCopy code

      <arg>--add-exportsarg>
      <arg>java.base/jdk.internal.org.objectweb.asm=java.compilerarg>
      

      这里假设 jdk.internal.org.objectweb.asm 是与 Java 17 版本兼容的包,java.compiler 是该包所在的模块。请根据实际情况修改模块路径。
      另外,确保在 Maven Compiler 插件的配置中不要再包含 \--release 参数,因为 Maven 会自动根据配置的 Java
      版本来处理 \--release 参数。如果之前配置了 \--release 参数,可以将其移除。
      最后,重新运行 Maven 编译命令,看看是否能够成功编译。

      如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

      用户答题指南

      评论
    • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-01 12:24
      关注

      【相关推荐】




      如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    如何在 vue 中使用 svg symbols
    一文详解不同路径
    风口浪尖,不想失业?你得学会接口自动化测试才能站稳脚步...
    JavaScript入门——基础知识(3)
    protobuf 基本语法总结
    支付通道的安全性探讨
    vue2中vant适配-把px都换算成rem
    【Vue基础系列】vue-router 万字详解,一篇彻底搞懂
    stm32和电机开发(从单机版到网络化)
    初识数据结构-B树
  • 原文地址:https://ask.csdn.net/questions/8082102