Java 中的命令行输入

Java 中的命令行输入

尝试通过 Java 程序中的命令提供输入。这是代码。

public class Hola {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(args[0]);
        System.out.println(args[0]);
        System.out.println(args[0]);
        System.out.println(args[0]);
    }
}

但是当尝试通过命令行运行它时,它会显示错误。我正在使用 ubuntu 18.04。这是错误:

错误:加载主类 Hola 时发生 LinkageError java.lang.UnsupportedClassVersionError:Hola 已由较新版本的 Java Runtime(类文件版本 58.0)编译,此版本的 Java Runtime 仅识别最高 55.0 的类文件版本

答案1

该错误意味着您使用的编译器版本比您尝试执行编译代码的 Java 虚拟机版本更新。

在您的情况下,58 表示 Java 14,55 表示 Java 11。因此,您使用 Java 14 编译了程序,并尝试使用 Java 11 执行编译后的代码。

可能是您的 Java 虚拟机配置与 Java 编译器配置不同步。

也许您运行了类似sudo update-alternatives --config java(JVM)的东西,但没有运行sudo update-alternatives --config javac(Java 编译器)。

为了避免此类问题,在 Ubuntu 中,您可以运行sudo update-java-alternatives,它负责设置java和的版本javac

相关内容