gpt4 book ai didi

java - 无法配置 IntelliJ 以使用 Java 11

转载 作者:行者123 更新时间:2023-11-30 01:42:43 25 4
gpt4 key购买 nike

虽然 IntelliJ IDE 没有给我任何警告,但这两行方法会导致编译错误 Error:(12, 37) java: incomplete types: byte[] Cannot be Converted to int :

import java.math.BigInteger;

public class Test {

public static void main(String[] args){
String foo = "123";
new BigInteger(foo.getBytes(), 1, 1);
}
}

在 JDK 11 中,有一个具有此签名的有效构造函数 public BigInteger(byte[] val, int off, int len)(java.math.BigInteger 的第 306 行),但在 JDK 8 中没有.我能够直接使用 JDK 11 的 javac 编译它,但按预期在 JDK 8 上失败。我已将 IntelliJ 配置为使用 JDK 11,但我不知道为什么它使用旧版本... System.out.println(System.getProperty("java.version")) 打印 11.0.1。似乎是使用 JDK 8 编译并使用 JDK 11 运行。

我已检查在以下位置选择了 JDK 11:

  • 运行/调试配置 > JRE
  • 项目结构 > 项目 > 项目 SDK
  • 项目结构 > 项目 > 项目语言级别
  • 项目结构 > 模块 > 语言级别

我正在使用IntelliJ IDEA 2018.2.6(社区版)。重新启动 IntelliJ 后问题仍然存在。

编辑:

项目使用maven

最佳答案

类似问题的因素可能很少,主要是由正在使用的其他工具(例如 maven 或 gradle)引起的。

仅使用 IDE 编译和运行代码时应该没有问题(因为所使用的 Java 版本已完全配置)。

构建工具(maven、gradle)可以设置为使用与 IDE 中配置的版本不同的 Java 版本。

要查看终端中运行的这些工具使用的版本:

gradle -version
mvn -version

输出应包含使用这些工具配置的 Java 版本。
他们的 Java 版本主要使用 JAVA_HOME 环境变量,该变量指向 JRE/JDK 位置。

如果构建工具使用不同的 Java 版本来编译源代码,则启动应用程序的版本可能会导致此类错误和异常。
该问题与Java8和新版本之间标准API的变化有关。

JAVA_HOME 变量的值更改为指向 Java11 文件夹应该可以完成工作,但如果仍然需要旧版本,例如在使用 Maven 时,可以使用该插件:

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.11</source>
<target>1.11</target>
</configuration>
</plugin>

关于java - 无法配置 IntelliJ 以使用 Java 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com