gpt4 book ai didi

Java编译错误——仅适用于Ubuntu+openjdk

转载 作者:行者123 更新时间:2023-11-30 05:41:46 26 4
gpt4 key购买 nike

我有一些 Java 代码可以在我的 Mac 上编译,但无法在我的 Ubuntu 机器上编译。具体来说,当使用 List 的静态 of 方法时,出现错误:

error: cannot find symbol
List<String> list2 = List.of("cat", "dog");
^
symbol: method of(String,String)
location: interface List
1 error

我认为这可能是 Java 版本的问题。果然,它只使用 Java 8。但是,我随后使用 OpenJDK 将我的 Ubuntu 机器升级为使用 Java 11,但仍然遇到同样的问题。

我在 Ubuntu 机器上运行 java -version 得到的输出是:

openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment (build 11.0.1+13-Ubuntu-3ubuntu116.04ppa1)
OpenJDK 64-Bit Server VM (build 11.0.1+13-Ubuntu-3ubuntu116.04ppa1, mixed mode, sharing)

我在 Mac 计算机上运行 java -version 得到的输出是:

java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

对于编译,我使用 Gradle 版本 5.2.1。我正在使用 Gradle 包装器,因此两台机器都使用相同版本的 Gradle。

这是未正确编译的文件。

package mypackage;

import java.util.List;
import java.util.ArrayList;

public class App {

public static void main(String[] args) {
// No errors on both MacOS and Ubuntu
List<String> list1 = new ArrayList<>();
list1.add("cat");
System.out.println(list1);

// Fails to compile on Ubuntu
List<String> list2 = List.of("cat", "dog");
System.out.println(list2);
}
}

最佳答案

List.of() 是在 Java 9 中引入的。这表明您从 Java 8 更新到 Java 11 未成功。

运行 ./gradlew -v 查看 Gradle 解析的 Java 版本:

------------------------------------------------------------
Gradle 5.3.1
------------------------------------------------------------

Build time: 2019-03-28 09:09:23 UTC
Revision: f2fae6ba563cfb772c8bc35d31e43c59a5b620c3

Kotlin: 1.3.21
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9)
OS: Linux 4.15.0-47-generic amd64

确保您aren't using Gradle daemon started on Java 8 before updating to Java 11并在 build.gradle 中强制 Java 11 兼容性:

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

关于Java编译错误——仅适用于Ubuntu+openjdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55502979/

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