如何使用 Java 11 运行 Java 文件

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Java 11 是 Java 编程语言的最新长期支持(LTS)版本,具有更高的性能、更强的安全性以及新特性。本教程将指导你使用 Java 11 运行时环境来运行 Java 文件,帮助你开启 Java 11 开发之旅,并解决可能遇到的任何问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/read_files("Read Files") java/SystemandDataProcessingGroup -.-> java/system_methods("System Methods") subgraph Lab Skills java/output -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} java/user_input -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} java/files -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} java/create_write_files -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} java/read_files -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} java/system_methods -.-> lab-414132{{"如何使用 Java 11 运行 Java 文件"}} end

开始使用 Java 11

Java 11 是 Java 编程语言的最新长期支持(LTS)版本,于 2018 年 9 月发布。与之前的版本相比,它提供了一系列新特性和改进,使其成为现代软件开发中强大且通用的工具。

了解 Java 11

Java 11 是 Java 开发工具包(JDK)的一个主要版本,引入了几个新特性和增强功能。Java 11 的一些关键亮点包括:

  • 长期支持(LTS):Java 11 是一个 LTS 版本,这意味着它将在较长时间内定期获得安全和错误修复,使其成为企业级应用程序的可靠选择。
  • 新语言特性:Java 11 包括几个新的语言特性,例如用于类型推断的 var 关键字、改进的字符串处理以及用于进行 HTTP 请求的 HttpClient API。
  • 性能改进:Java 11 具有各种性能改进,包括更快的启动时间和减少的内存占用。
  • 模块化系统:Java 11 基于 Java 9 中引入的模块化系统构建,使开发人员能够创建更模块化和可维护的应用程序。

安装 Java 11

要开始使用 Java 11,你需要下载并安装 JDK。你可以从 Oracle 官方网站下载 JDK,或者在 Ubuntu 22.04 上使用 apt 等包管理器。

以下是使用 apt 在 Ubuntu 22.04 上安装 Java 11 的示例:

sudo apt update
sudo apt install openjdk-11-jdk

安装完成后,你可以通过运行以下命令来验证 Java 版本:

java -version

这应该输出类似于以下内容:

openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

现在你已经安装了 Java 11,就可以开始运行 Java 程序了。

在 Java 11 中运行 Java 程序

既然你已经安装了 Java 11,那么让我们来探讨如何使用 Java 11 运行时环境来运行 Java 程序。

编译和运行 Java 文件

要运行一个 Java 程序,你需要先将 Java 源代码编译成字节码,然后使用 Java 虚拟机(JVM)执行字节码。

以下是在 Ubuntu 22.04 上编译和运行一个简单 Java 程序的示例:

  1. 创建一个名为 HelloWorld.java 的新文件,内容如下:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, LabEx!");
    }
}
  1. 使用 javac 命令编译 Java 文件:
javac HelloWorld.java

这将生成一个名为 HelloWorld.class 的新文件,其中包含编译后的字节码。

  1. 使用 java 命令运行编译后的程序:
java HelloWorld

这将执行 HelloWorld 类中的 main() 方法,并输出 Hello, LabEx!

使用命令行参数

你还可以将命令行参数传递给你的 Java 程序。以下是一个示例:

public class ArgumentExample {
    public static void main(String[] args) {
        if (args.length > 0) {
            System.out.println("Received argument(s):");
            for (String arg : args) {
                System.out.println(arg);
            }
        } else {
            System.out.println("No arguments provided.");
        }
    }
}

要使用命令行参数运行此程序,请使用以下命令:

java ArgumentExample Hello World LabEx

这将输出:

Received argument(s):
Hello
World
LabEx

main() 方法中的 args 参数是一个字符串数组,其中包含传递给程序的命令行参数。

通过了解如何编译和运行 Java 程序,以及如何处理命令行参数,你将在成为一名熟练的 Java 11 开发者的道路上迈出坚实的步伐。

解决 Java 11 执行过程中的问题

虽然运行 Java 程序通常很简单,但你偶尔可能会遇到问题或错误。在本节中,我们将介绍一些常见的故障排除步骤,以帮助你解决可能遇到的任何问题。

检查 Java 版本

在排查任何问题之前,确保你使用的是正确版本的 Java 很重要。你可以通过运行以下命令来检查已安装的 Java 版本:

java -version

这应该输出你系统上安装的 Java 版本,类似于以下内容:

openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

如果输出中没有显示 Java 11,你可能需要安装或配置正确版本的 Java。

处理编译错误

如果你在编译 Java 代码时遇到错误,可以使用编译器的输出来帮助你识别和修复问题。例如,如果你的代码中有语法错误,编译器将输出一条错误消息,其中包含行号和问题描述。

以下是一个编译错误的示例:

$ javac HelloWorld.java
HelloWorld.java:3: error: ';' expected
        System.out.println("Hello, LabEx!")
                                         ^
1 error

在这种情况下,错误消息表明 System.out.println() 语句末尾缺少分号(;)。

排查运行时错误

如果你的 Java 程序编译成功但在运行时遇到错误,可以使用堆栈跟踪来帮助你识别和修复问题。堆栈跟踪将显示导致错误的方法调用序列,以及错误发生的行号。

以下是一个运行时错误的示例:

$ java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

在这种情况下,错误消息表明找不到 HelloWorld 类,这表明类文件可能没有正确生成,或者可能在错误的目录中。

通过了解如何排查编译和运行时错误,你将更有能力处理运行 Java 11 程序时可能出现的任何问题。

总结

在本全面的 Java 11 教程中,你将学习运行 Java 文件的基本步骤,从设置 Java 11 运行时环境到执行你的 Java 程序。你还将发现排查常见问题的技巧,并确保拥有顺畅的 Java 11 开发体验。无论你是初学者还是经验丰富的 Java 开发者,本指南都将为你提供知识,以便有效地利用 Java 11 的强大功能来完成你的项目。