简介
Java 11 是 Java 编程语言的最新长期支持(LTS)版本,具有更高的性能、更强的安全性以及新特性。本教程将指导你使用 Java 11 运行时环境来运行 Java 文件,帮助你开启 Java 11 开发之旅,并解决可能遇到的任何问题。
Java 11 是 Java 编程语言的最新长期支持(LTS)版本,具有更高的性能、更强的安全性以及新特性。本教程将指导你使用 Java 11 运行时环境来运行 Java 文件,帮助你开启 Java 11 开发之旅,并解决可能遇到的任何问题。
Java 11 是 Java 编程语言的最新长期支持(LTS)版本,于 2018 年 9 月发布。与之前的版本相比,它提供了一系列新特性和改进,使其成为现代软件开发中强大且通用的工具。
Java 11 是 Java 开发工具包(JDK)的一个主要版本,引入了几个新特性和增强功能。Java 11 的一些关键亮点包括:
var
关键字、改进的字符串处理以及用于进行 HTTP 请求的 HttpClient
API。要开始使用 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 11 运行时环境来运行 Java 程序。
要运行一个 Java 程序,你需要先将 Java 源代码编译成字节码,然后使用 Java 虚拟机(JVM)执行字节码。
以下是在 Ubuntu 22.04 上编译和运行一个简单 Java 程序的示例:
HelloWorld.java
的新文件,内容如下:public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, LabEx!");
}
}
javac
命令编译 Java 文件:javac HelloWorld.java
这将生成一个名为 HelloWorld.class
的新文件,其中包含编译后的字节码。
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 程序通常很简单,但你偶尔可能会遇到问题或错误。在本节中,我们将介绍一些常见的故障排除步骤,以帮助你解决可能遇到的任何问题。
在排查任何问题之前,确保你使用的是正确版本的 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 的强大功能来完成你的项目。