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-linestring 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.mzph.cn/bicheng/65232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《解锁 Python 数据挖掘的奥秘》

《解锁 Python 数据挖掘的奥秘》 一、Python 数据挖掘基础&#xff08;一&#xff09;Python 基础与数据挖掘环境搭建&#xff08;二&#xff09;数据挖掘基本流程概述 二、Python 数据挖掘核心技术&#xff08;一&#xff09;数据收集与预处理技术&#xff08;二&#xff09;常…

爆改RagFlow

Rag理论概述 由近期 RAGFlow 的火爆看 RAG 的现状与未来 Ragflow解析参数说明 ♥ RagFlow源码解析 实际的文件解析通过接口 /v1/document/run 进行触发的&#xff0c;实际的处理是在 api/db/services/task_service.py 中的 queue_tasks() 中完成的&#xff0c;此方法会根据文件…

【GeekBand】C++设计模式笔记15_Proxy_代理模式

1. “接口隔离” 模式 在组件构建过程中&#xff0c;某些接口之间直接的依赖常常会带来很多问题&#xff0c;甚至根本无法实现。采用添加一层间接&#xff08;稳定&#xff09;接口&#xff0c;来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式 FacadeProxyAdapte…

springboot测试类里注入不成功且运行报错

目录 出错信息 原因 出错信息 写测试类的时候&#xff0c;一直说我注入不成功 而且我运行的时候报错了 java.lang.IllegalStateException: Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or SpringBootTest(classes...) with your te…

Docker下TestHubo安装配置指南

TestHubo是一款开源免费的测试管理工具&#xff0c; 下面介绍Docker 私有部署的安装与配置。TestHubo 私有部署版本更适合有严格数据安全要求的企业&#xff0c;支持在本地或专属服务器上运行&#xff0c;以实现对数据和系统的完全控制。 1、Docker 服务端安装 Docker安装包下…

Redis实战篇(四、高级数据结构的使用)

目录 五、达人探店 1.发布探店笔记 2.查看探店笔记 3.点赞功能 4.点赞排行榜 六、好友关注 1.关注和取消关注 2.共同关注 3.关注推送 &#xff08;1&#xff09;Feed流实现方案分析 &#xff08;2&#xff09;推送到粉丝收件箱 &#xff08;3&#xff09;实现分页查询…

基本操作:iframe、alert

背景 如果你的目标元素出现在一个iframe标签下&#xff0c;则不能直接定位&#xff0c;必须先完成切换才能进行定位操作&#xff0c;如下图 整个理解为一个大的房间&#xff0c;里面是客厅&#xff0c;driver进到客厅后&#xff0c;如果想操作iframe A里的数据&#xff0c;需…

【C++11】类型分类、引用折叠、完美转发

目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后&#xff0c;进一步对类型进行了划分&#xff0c;右值被划分纯右值(pure value&#xff0c;简称prvalue)和将亡值 (expiring value&#xff0c;简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…

IntelliJ Idea常用快捷键详解

文章目录 IntelliJ Idea常用快捷键详解一、引言二、文本编辑与导航1、文本编辑2、代码折叠与展开 三、运行和调试四、代码编辑1、代码补全 五、重构与优化1、重构 六、使用示例代码注释示例代码补全示例 七、总结 IntelliJ Idea常用快捷键详解 一、引言 在Java开发中&#xff…

kafka的备份策略:从备份到恢复

文章目录 一、全量备份二、增量备份三、全量恢复四、增量恢复 前言&#xff1a;Kafka的备份的单元是partition&#xff0c;也就是每个partition都都会有leader partiton和follow partiton。其中leader partition是用来进行和producer进行写交互&#xff0c;follow从leader副本进…

怎么模仿磁盘 IO 慢的情况?并用于MySQL进行测试

今天给大家分享一篇在测试环境或者是自己想检验自己MySQL性能的文章 实验环境&#xff1a; Rocky Linux 8 镜像&#xff1a;Rocky-8.6-x86_64-dvd.iso 1. 创建一个大文件作为虚拟磁盘 [rootlocalhost ~] dd if/dev/zero of/tmp/slowdisk.img bs1M count100 记录了1000 的读入…

1.微服务灰度发布(方案设计)

前言 微服务架构中的灰度发布&#xff08;也称为金丝雀发布或渐进式发布&#xff09;是一种在不影响现有用户的情况下&#xff0c;逐步将新版本的服务部署到生产环境的策略。通过灰度发布&#xff0c;你可以先将新版本的服务暴露给一小部分用户或特定的流量&#xff0c;观察其…

【开源免费】基于SpringBoot+Vue.JS安康旅游网站(JAVA毕业设计)

本文项目编号 T 098 &#xff0c;文末自助获取源码 \color{red}{T098&#xff0c;文末自助获取源码} T098&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

基于SpringBoot的4S店汽车销售管理系统的设计与实现

一、课题背景 为汽车销售公司设计了一个汽车管理系统 技术&#xff1a;前台采用网页技术&#xff0c;后端采用SpringBoottMybatistvue 项目 描述&#xff1a;随着人们生活水平的不断提高&#xff0c;人们对汽车的消费和需求也越来越旺盛。多汽车销售公司仍然采用人工记账的传…

电子应用设计方案72:智能扫地机器人系统设计

智能扫地机器人系统设计 一、引言 智能扫地机器人作为现代智能家居的重要组成部分&#xff0c;旨在为用户提供便捷、高效的地面清洁服务。本设计方案将详细阐述智能扫地机器人的系统架构、功能模块及实现方式。 二、系统概述 1. 系统目标 - 自主规划清扫路径&#xff0c;覆盖…

路由策略

控制层流量 --- 路由协议传递路由信息时产生的流量 数据层流量 --- 设备访问目标地址时产生的流量 所谓的路由策略----在控制层面转发流量的过程中&#xff0c;截取流量&#xff0c;之后修改流量再转发或不转发的技术&#xff0c;最终达到影响路由器路由表的生成&#xff0c…

【CSS in Depth 2 精译_095】16.3:深入理解 CSS 动画(animation)的性能

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 16 章 变换】 ✔️ 16.1 旋转、平移、缩放与倾斜 16.1.1 变换原点的更改16.1.2 多重变换的设置16.1.3 单个变换属性的设置 16.2 变换在动效中的应用 16.2.1 放大图标&am…

数据之林的守护者:二叉搜索树的诗意旅程

文章目录 前言一. 二叉搜索树的概念1.1 二叉搜索树的定义1.1.1 为什么使用二叉搜索树&#xff1f; 二. 二叉搜索树的性能分析2.1 最佳与最差情况2.1.1 最佳情况2.1.2 最差情况 2.2 平衡树的优势 三.二叉搜索树的基本操作实现3.1.1 详细示例3.1.2 循环实现插入操作3.1.2.1 逻辑解…

利索能及 ▏外观专利相似度多少算侵权?

判断是否侵权前提&#xff1a; 双方产品属于同类产品&#xff0c;不属于同类产品的不能比较。 判定同类产品不仅仅要依据《国际外观设计分类表》&#xff0c;还要依据一般商品商品的分类标准来却确定。 简单概括来说&#xff0c;判定侵权前提就是被控侵权产品和外观设计专利…

【编译原理】往年题汇总(山东大学软件学院用)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;编译原理_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …