当前位置: 首页 > article >正文

Java 23和JDK 23详细安装方法,常用命令使用等

Java JDK 23 是 Oracle 提供的最新版本的 Java 开发工具包,它包含了 Java 编程语言的最新特性和改进。本教程将介绍如何安装 JDK 23,并详细讲解一些常用的命令和用法。


一、安装 JDK 23

  1. 下载 JDK 23: 
    提供了 Windows、macOS 和 Linux 的安装包, 下载地址:https://pan.quark.cn/s/d88b6b985f0d

  2. 安装 JDK 23

    • Windows:双击下载的安装包,按照提示进行安装。安装完成后,默认安装路径为 C:\Program Files\Java\jdk-23
    • macOS:双击下载的 DMG 文件,将其拖动到应用程序文件夹中。
    • Linux:解压下载的 tar.gz 文件,并将其移动到 /usr/local/ 目录下。
  3. 配置环境变量

    • Windows
      1. 打开“控制面板”,选择“系统和安全”,然后选择“系统”。
      2. 点击“高级系统设置”,然后点击“环境变量”。
      3. 在“系统变量”中,找到“Path”变量,点击“编辑”。
      4. 在“新建”中输入 C:\Program Files\Java\jdk-23\bin,然后点击“确定”。
    • macOS 和 Linux
      1. 打开终端,输入以下命令:
sudo nano ~/.bash_profile
  • 在文件末尾添加以下内容:
export JAVA_HOME=/usr/local/jdk-23
export PATH=$JAVA_HOME/bin:$PATH
  • 保存并关闭文件,然后运行以下命令使更改生效:
source ~/.bash_profile

二、验证 JDK 23 安装

安装完成后,可以使用以下命令验证 JDK 23 是否安装成功:

java -version

如果输出类似以下内容,则表示安装成功:

java version "23"
Java(TM) SE Runtime Environment (build 23+35-2361)
Java HotSpot(TM) 64-Bit Server VM (build 23+35-2361, mixed mode, sharing)

三、常用命令及用法

1. javac 命令

javac 命令用于编译 Java 源代码文件(.java 文件),生成字节码文件(.class 文件)。

语法

javac [options] [source files]

示例

javac HelloWorld.java

这将编译 HelloWorld.java 文件,生成 HelloWorld.class 文件。

常用选项

  • -d:指定生成的 class 文件的目录。
  • -cp-classpath:指定类路径。
  • -source:指定源代码的版本。
  • -target:指定生成的 class 文件的版本。
2. java 命令

java 命令用于运行 Java 应用程序。

语法

java [options] [class] [args...]

示例

java HelloWorld

这将运行 HelloWorld 类的 main 方法。

常用选项

  • -cp-classpath:指定类路径。
  • -jar:指定要运行的 JAR 文件。
  • -Xmx:指定最大堆内存大小。
  • -Xms:指定初始堆内存大小。
3. javap 命令

javap 命令用于反编译 Java 字节码文件(.class 文件),生成可读的 Java 源代码。

语法

javap [options] [class]

示例

javap HelloWorld

这将反编译 HelloWorld.class 文件,生成可读的 Java 源代码。

常用选项

  • -c:显示反编译后的源代码。
  • -l:显示行号和本地变量表。
  • -v:显示类的详细信息。
4. javadoc 命令

javadoc 命令用于生成 Java 源代码文档。

语法

javadoc [options] [source files]

示例

javadoc HelloWorld.java

这将生成 HelloWorld.java 文件的文档。

常用选项

  • -d:指定生成文档的目录。
  • -author:包含 @author 标记的文档。
  • -version:包含 @version 标记的文档。

四、JDK 23 的新特性

JDK 23 引入了一些新的特性和改进,以下是其中一些重要的新特性:

  1. 记录模式:记录模式允许开发者更简洁地定义不可变数据类。记录模式自动生成构造函数、访问器和 equals、hashCode 和 toString 方法。

  • public record Person(String name, int age) {}
    
  • 模式匹配:模式匹配允许开发者使用更简洁的语法来匹配和解构数据。

  • if (obj instanceof String s) {
        System.out.println(s);
    }
    
  • 文本块:文本块允许开发者更方便地定义多行字符串。

  • String text = """
    This is a multi-line
    string in Java.
    """;
    
  • 局部变量类型推断:局部变量类型推断允许开发者使用 var 关键字来推断变量的类型。

  • var list = new ArrayList<String>();
    
  • 增强的 switch 语句:增强的 switch 语句允许开发者使用更简洁的语法来编写 switch 语句。

  • int number = 1;
    switch (number) {
        case 1 -> System.out.println("One");
        case 2 -> System.out.println("Two");
        default -> System.out.println("Other");
    }
    

五、示例项目

为了更好地理解 JDK 23 的使用,以下是一个简单的示例项目,展示了如何使用 JDK 23 的新特性。

// 记录模式
public record Person(String name, int age) {}

// 模式匹配
public class Main {
    public static void main(String[] args) {
        Object obj = "Hello, World!";
        if (obj instanceof String s) {
            System.out.println(s);
        }

        // 文本块
        String text = """
        This is a multi-line
        string in Java.
        """;
        System.out.println(text);

        // 局部变量类型推断
        var list = new ArrayList<String>();
        list.add("Java");
        list.add("JDK");
        System.out.println(list);

        // 增强的 switch 语句
        int number = 1;
        switch (number) {
            case 1 -> System.out.println("One");
            case 2 -> System.out.println("Two");
            default -> System.out.println("Other");
        }
    }
}

六、总结

本教程介绍了如何安装 JDK 23,并详细讲解了一些常用的命令和用法。JDK 23 引入了许多新的特性和改进,使 Java 编程更加简洁和高效。通过学习和使用这些新特性,开发者可以更好地编写和维护 Java 应用程序。希望本教程对您有所帮助,祝您编程愉快!


http://www.kler.cn/a/453259.html

相关文章:

  • MySql详细教程-从入门到进阶(超实用)
  • HTMLCSS:超炫丝滑的卡片水波纹效果
  • 解线性方程组
  • 如何使用MySQL WorkBench操作MySQL数据库
  • cesium入门学习二
  • golang标准库SSH操作示例
  • 安卓端侧大模型MLC-LLM部署全攻略:以InternLM2.5-1.8B为例
  • 任务8 数据库服务配置与管理
  • 力扣面试题 39 - 三步问题 C语言解法
  • 遗传萤火虫算法的原理
  • 【Git】—— 代码版本控制工具git的安装及基本使用
  • 【C++动态规划】1458. 两个子序列的最大点积|1823
  • 深度解析DAPP开发 | 智能合约与业务应用
  • Bert各种变体——RoBERTA/ALBERT/DistillBert
  • 容器化平台Docker初识
  • 动态规划<五> 子数组问题(含对应LeetcodeOJ题)
  • 下载运行Vue开源项目vue-pure-admin
  • 如何利用AWS监听存储桶并上传到tg bot
  • 模型 易得性偏差
  • 漏洞扫描:网络安全的 “体检” 与 “防护指南”
  • 常用的数据结构的时间复杂度
  • 实现某海外大型车企(T)Cabin Wi-Fi 需求的概述 - 4
  • 某些iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题
  • Python调用Elasticsearch更新数据库
  • Linux | 零基础Ubuntu搭建JDK
  • ref 和 reactive 的用法和区别