IDEA JDK9没有module-info.java的解决方法

本文介绍如何在Maven工程中正确配置模块化环境,包括创建工程、设置编译环境等步骤。特别强调了对于Java 9及以上版本的支持,并详细说明了如何在项目中正确引入module-info.java文件。
摘要由CSDN通过智能技术生成
1. 创建一个maven工程
2. 配置一下项目的编译环境
注意:必须声明为jdk9及其以后的版本,不然new中是没有module-info.java这个选项

下面是使用jdk8的时候,没有module-info.java这个选项
使用的JDK8

使用jdk10的时候,就有module-info.java这个选项

<build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.7.0</version>
              <configuration>
                  <source>10</source>
                  <target>10</target>
              </configuration>
          </plugin>
	</plugins>
</build>

使用的JDK10

3. 一些注意事项
  1. 新建 module-info.java 文件必须选择 java这个文件夹,也就是存放java代码的源文件夹,选择其他文件夹右键是没有的
  2. 自己不能手动通过 new JavaClass 创建 module-info.java 文件,自己是没法创建的,因为Java变量定义规范是:字母、数字、下划线,$符号,下面是创建失败的截图
    这里写图片描述
    这里写图片描述
    虽然IDEA不让创建,但是我们可以自己在外面创建好一个module-info.java 文件,再复制到 java 文件夹下(不建议)
构建进程终止异常: C:\Users\阿榆\.jdks\openjdk-22.0.2\bin\java.exe -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=D:\java\IntelliJ IDEA 2024.1.4/lib/jna/amd64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED "-Dpreload.project.path=D:/java/Java 学习/Java SE" -Dpreload.config.path=C:/Users/阿榆/AppData/Roaming/JetBrains/IntelliJIdea2024.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=-1040225010816134979 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2024.1 -Djps.language.bundle=C:/Users/阿榆/AppData/Roaming/JetBrains/IntelliJIdea2024.1/plugins/zh.241.271/lib/zh.241.271.jar "-Didea.home.path=D:/java/IntelliJ IDEA 2024.1.4" -Didea.config.path=C:/Users/阿榆/AppData/Roaming/JetBrains/IntelliJIdea2024.1 -Didea.plugins.path=C:/Users/阿榆/AppData/Roaming/JetBrains/IntelliJIdea2024.1/plugins -Djps.log.dir=C:/Users/阿榆/AppData/Local/JetBrains/IntelliJIdea2024.1/log/build-log "-Djps.fallback.jdk.home=D:/java/IntelliJ IDEA 2024.1.4/jbr" -Djps.fallback.jdk.version=17.0.11 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/阿榆/AppData/Local/JetBrains/IntelliJIdea2024.1/compile-server/java_se_f741f0a1/_temp_ -Dj
最新发布
03-20
<think>嗯,用户遇到了IntelliJ IDEA构建进程终止异常的问题,提到了openjdk-22.0.2、java.exe和add-opens JDK编译器参数配置。首先,我需要回忆一下这类问题的常见原因。 根据用户提供的引用[1],问题可能和JDK版本与M2芯片的兼容性有关。用户之前可能因为版本不匹配重新安装过JDK,但这次可能路径或配置有问题。另外,引用[2]提到JavaFX工具在JDK11中被移除,而用户现在用的是JDK22,可能某些旧配置或依赖项还在引用这些被移除的部分,导致构建失败。 接下来,异常的具体信息是构建进程终止,可能与编译器参数有关,特别是add-opens。add-opens用于在模块化系统中开放包以进行反射访问。如果项目中某些库需要访问未开放的模块,就会报错。用户可能在编译器参数中缺少必要的add-opens配置。 需要检查几个方面:JDK安装是否正确,环境变量是否指向正确的路径,项目SDK设置是否匹配。然后,检查构建配置中的编译器参数,是否有遗漏的add-opens。比如,常见的如--add-opens java.base/java.lang=ALL-UNNAMED等。 另外,用户可能使用了过时的插件或依赖,尤其是与JavaFX相关的,需要确认是否兼容JDK22。如果项目依赖旧版工具,可能需要升级或替换这些依赖。 可能的解决步骤包括:重新配置JDK路径,添加必要的add-opens参数,更新项目依赖,清理缓存重启IDEA。如果问题依旧,可能需要查看更详细的错误日志,或者尝试降级JDK版本看是否是兼容性问题。</think>### 解决 IntelliJ IDEA 构建进程终止异常(openjdk-22.0.2 相关) #### 1. 问题背景分析 构建进程终止异常通常与以下原因相关: - **JDK 版本与项目配置不兼容**:例如 M1/M2 芯片的 ARM 架构需要对应 JDK 版本[^1]。 - **模块化系统(Module System)权限问题**:`add-opens` 参数未正确配置,导致反射访问受限。 - **环境变量或路径冲突**:JDK 安装路径未正确配置,或存在多版本冲突。 #### 2. 分步解决方案 **步骤 1:确认 JDK 安装与配置** - 检查当前 JDK 版本是否与项目要求一致(如 openjdk-22.0.2)。 - 验证环境变量 `JAVA_HOME` 是否指向正确的 JDK 路径: ```bash echo $JAVA_HOME # macOS/Linux echo %JAVA_HOME% # Windows ``` - 在 IntelliJ IDEA 中,通过 `File > Project Structure > Project SDK` 确认项目使用的 JDK。 **步骤 2:添加 `add-opens` 编译器参数** - 在 `IntelliJ IDEA` 的构建配置中,添加以下参数以开放模块权限: ```plaintext --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED ``` - 配置路径:`File > Settings > Build, Execution, Deployment > Compiler > Java Compiler`,在 `Additional command-line parameters` 中添加参数。 **步骤 3:检查依赖项与插件兼容性** - 如果项目依赖 JavaFX 或其他框架,确保使用与 JDK 22 兼容的版本(如 JavaFX 21)。 - 更新 Maven/Gradle 依赖至最新稳定版,避免因旧版本工具链(如 `javapackager`)被移除导致问题[^2]。 **步骤 4:清理缓存并重启 IDEA** - 执行 `File > Invalidate Caches / Restart`,清理可能冲突的缓存文件。 #### 3. 扩展验证 - 若仍报错,通过终端直接运行构建命令(如 `mvn clean install` 或 `gradle build`),观察详细错误日志。 - 尝试降级至 JDK 17 等 LTS 版本,验证是否为 JDK 22 的兼容性问题。 --- ###
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值