【Java-Day 1】开启编程之旅:详解Java JDK安装、环境配置与运行HelloWorld
Langchain系列文章目录
01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
07-【深度解析】从GPT-1到GPT-4:ChatGPT背后的核心原理全揭秘
PyTorch系列文章目录
机器学习系列文章目录
Java系列文章目录
01-【Java-Day 1】开启编程之旅:详解Java JDK安装、环境配置与运行HelloWorld
文章目录
- Langchain系列文章目录
- PyTorch系列文章目录
- 机器学习系列文章目录
- Java系列文章目录
- 前言
- 一、编程语言与Java初识
- 1.1 什么是编程语言?
- 1.2 什么是Java?
- 1.2.1 Java的诞生与历史
- 1.2.2 Java的核心特点
- 1.2.3 Java的应用领域
- 二、Java平台核心概念:JDK, JRE, JVM
- 2.1 JVM:Java虚拟机 (Java Virtual Machine)
- 2.2 JRE:Java运行环境 (Java Runtime Environment)
- 2.3 JDK:Java开发工具包 (Java Development Kit)
- 2.4 三者关系图解
- 三、搭建Java开发环境
- 3.1 选择合适的JDK版本
- 3.2 下载与安装JDK
- 3.3 配置环境变量 (Windows 示例)
- (1) 配置 `JAVA_HOME`
- (2) 配置 `Path`
- (3) 验证安装
- 四、编写并运行第一个Java程序
- 4.1 编写源代码
- (1) 创建文本文件
- (2) 编写代码
- 4.2 编译Java代码
- (1) 打开命令行工具
- (2) 切换到源代码目录
- (3) 执行编译命令
- 4.3 运行Java程序
- (1) 执行运行命令
- (2) 查看输出
- 4.4 常见问题与排查
- 五、总结
前言
欢迎来到《Java从入门到精通》系列!本系列旨在为广大编程爱好者,无论是零基础的初学者,还是希望系统巩固Java知识的进阶者,提供一个清晰、实用、循序渐进的学习路径。作为系列的第一篇,我们将从最基础的概念讲起,带你认识什么是编程语言,什么是强大的Java,并手把手教你搭建Java开发环境,最终编写并成功运行你的第一个Java程序——经典的 “Hello, World!”。让我们一起扬帆起航,开启激动人心的Java编程之旅吧!
一、编程语言与Java初识
在深入Java世界之前,我们先来了解一些基本概念。
1.1 什么是编程语言?
想象一下,你想让电脑帮你完成一项任务,比如计算 1 + 1 1+1 1+1 的结果。但是电脑听不懂我们日常说的话(自然语言),它只懂由0和1组成的机器指令。直接写机器指令对人类来说太困难了。
编程语言,就像人类与计算机之间的“翻译官”。它使用一套人类相对容易理解的规则和符号(语法)来编写指令,然后通过特定的工具(编译器或解释器)将这些指令翻译成计算机能够执行的机器码。常见的编程语言有 C, C++, Python, JavaScript, 当然还有我们今天的主角——Java。
简单来说,编程语言就是用来定义计算机程序的形式语言,是程序员与计算机沟通的桥梁。
1.2 什么是Java?
Java 是一门由 Sun Microsystems 公司(现已被 Oracle 收购)于1995年推出的高级、面向对象、跨平台的编程语言。它的设计初衷是 “Write Once, Run Anywhere” (一次编写,到处运行)。
1.2.1 Java的诞生与历史
Java最初由詹姆斯·高斯林(James Gosling)等人领导的“绿色计划”(Green Project)开发,最初命名为Oak,后更名为Java。它的诞生恰逢互联网兴起的时代,其跨平台特性使其迅速在网络应用开发中流行起来。经过二十多年的发展,Java 已经成为世界上最流行、应用最广泛的编程语言之一。
1.2.2 Java的核心特点
Java之所以如此成功,离不开其众多优秀的特性:
- 面向对象 (Object-Oriented): Java 是一门纯粹的面向对象编程语言,支持封装、继承和多态,使得代码更易于维护、扩展和复用。 (我们将在后续文章深入学习)
- 平台无关性 (Platform Independent - “Write Once, Run Anywhere”): 这是Java最核心的优势。Java代码编译后生成的是一种称为“字节码”(
.class
文件)的中间格式,而不是特定平台的机器码。只要在目标平台上安装了Java虚拟机 (JVM),这份字节码就可以在该平台上运行,无需重新编译。 - 简单性: 相较于C++等语言,Java 语法相对简洁,并剔除了一些复杂且容易出错的特性(如指针、多重继承)。
- 健壮性 (Robust): Java 拥有强大的异常处理机制和自动内存管理(垃圾回收),有助于编写稳定可靠的程序。
- 安全性 (Secure): Java 设计时就考虑了安全因素,提供了安全机制来防止恶意代码的攻击,适用于网络分布式环境。
- 高性能: 虽然Java是解释执行字节码,但通过即时编译 (JIT - Just-In-Time Compilation) 等技术,其性能不断优化,接近甚至达到编译型语言的水平。
- 多线程 (Multithreaded): Java 内置了对多线程的支持,可以方便地编写并发程序,充分利用多核CPU资源。
- 丰富的API: Java 提供了庞大而完善的标准类库 (Java API),涵盖了网络、I/O、数据库连接、图形界面、XML处理等方方面面,极大地提高了开发效率。
1.2.3 Java的应用领域
凭借其强大的特性和庞大的生态系统,Java被广泛应用于各个领域:
- 企业级应用开发 (后端开发): 这是Java最核心的应用领域,如大型网站后端、金融系统、ERP系统等 (Spring Boot, Spring Cloud)。
- Android 应用开发: Android 平台的官方开发语言之一。
- 大数据处理: Hadoop、Spark、Flink 等主流大数据框架都基于Java或Scala(运行在JVM上)。
- Web 开发: Servlet/JSP 技术,以及各种Web框架 (如 Struts, Spring MVC)。
- 桌面应用开发: Swing, JavaFX 等库可用于开发图形界面应用 (虽然相对Web和移动应用较少)。
- 游戏开发: Minecraft 就是用Java开发的著名例子。
- 嵌入式系统和物联网: Java ME (Micro Edition) 曾用于此领域。
二、Java平台核心概念:JDK, JRE, JVM
在开始安装之前,理解Java平台的三个核心组成部分及其关系至关重要。
2.1 JVM:Java虚拟机 (Java Virtual Machine)
JVM 是 Java 实现“一次编写,到处运行”的关键。它是一个规范,定义了Java字节码如何被执行。你可以把它想象成一个虚拟的计算机,它能理解并执行 .class
字节码文件。
- 作用: 加载并运行 Java 字节码 (
.class
文件)。 - 特性: 针对不同的操作系统(Windows, macOS, Linux)有不同的具体实现,但都遵循相同的 JVM 规范,从而屏蔽了底层操作系统的差异。
- 核心: 实现跨平台运行。
2.2 JRE:Java运行环境 (Java Runtime Environment)
JRE 是运行已编译Java程序所必需的环境。如果你只是想运行一个Java应用(比如玩Minecraft或者运行某个基于Java的软件),安装JRE就足够了。
- 组成: JVM + Java核心类库 (Java API)。
- 作用: 提供Java程序运行所需的环境。
- 目标用户: 普通用户,只需要运行Java程序。
2.3 JDK:Java开发工具包 (Java Development Kit)
JDK 是面向Java开发人员的完整工具集。它包含了编写、编译和调试Java程序所需的一切。
- 组成: JRE + 开发工具 (编译器
javac
, 调试器jdb
, 文档生成器javadoc
等)。 - 作用: 提供Java程序的开发环境。
- 目标用户: Java程序员。
2.4 三者关系图解
它们之间的关系可以用下图清晰表示:JDK 包含 JRE,JRE 包含 JVM。
总结:
- 如果你要开发 Java 程序,你需要安装 JDK。
- 如果你只是要运行 Java 程序,只需要安装 JRE (但通常安装JDK更方便,因为它自带JRE)。
- JVM 是 Java 程序得以跨平台运行的核心,它包含在 JRE 和 JDK 中。
三、搭建Java开发环境
现在,我们动手来安装JDK并配置好开发环境。
3.1 选择合适的JDK版本
Java有不同的版本,其中一些版本被称为 LTS (Long-Term Support, 长期支持) 版本,它们会获得更长时间的更新和维护,更适合生产环境和稳定学习。常见的LTS版本有:
- Java 8 (应用广泛,但较老)
- Java 11
- Java 17 (推荐)
- Java 21 (当前最新的LTS)
对于初学者,推荐安装 Java 17 或 Java 21。
你可以从以下途径下载JDK:
- Oracle JDK: https://www.oracle.com/java/technologies/downloads/ (注意Oracle JDK的许可协议,自Java 17起,部分版本可免费用于生产)
- OpenJDK: 开源实现,有许多发行版,推荐:
- Adoptium (Eclipse Temurin): https://adoptium.net/ (社区驱动,完全免费)
- Microsoft Build of OpenJDK: https://docs.microsoft.com/java/openjdk/download
- Amazon Corretto: https://aws.amazon.com/corretto/
本教程以 Windows 平台安装 Eclipse Temurin OpenJDK 17 为例。其他操作系统和JDK发行版步骤类似。
3.2 下载与安装JDK
- 访问 Adoptium 官网。
- 选择操作系统 (Windows)、架构 (通常是 x64) 和版本 (如 17 - LTS)。
- 下载
.msi
(安装程序) 或.zip
(解压版)。推荐使用.msi
安装程序,它通常会自动处理一些配置。 - 双击下载的
.msi
文件,启动安装向导。 - 按照向导提示进行安装:
- 同意许可协议。
- 选择安装路径 (可以保持默认,如
C:\Program Files\Eclipse Adoptium\jdk-17.x.x.x
)。请记住这个路径,后面配置环境变量会用到。 - 在“Custom Setup”步骤,确保 “Set JAVA_HOME variable” 和 “Add to PATH” 这两项被选中安装。如果使用
.msi
安装程序并勾选了这两项,通常可以跳过手动配置环境变量的步骤,但了解手动配置仍然很重要。 - 点击“Install”开始安装。
- 等待安装完成。
3.3 配置环境变量 (Windows 示例)
如果安装时没有自动配置,或者使用的是 .zip
解压版,你需要手动配置环境变量,让操作系统知道去哪里找Java的命令 (java
, javac
)。
(1) 配置 JAVA_HOME
JAVA_HOME
指向JDK的安装目录。
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击“高级系统设置”。
- 在“高级”选项卡下,点击“环境变量(N)…”。
- 在“系统变量(S)”区域(不是用户变量),点击“新建(W)…”。
- 变量名(N): 输入
JAVA_HOME
- 变量值(V): 输入你JDK的安装路径(例如:
C:\Program Files\Eclipse Adoptium\jdk-17.0.11.9-hotspot\
,请根据你的实际安装路径修改)。 - 点击“确定”。
(2) 配置 Path
Path
变量告诉系统去哪里查找可执行文件。我们需要把JDK的 bin
目录添加到 Path
中。
- 在“系统变量(S)”区域,找到名为
Path
的变量,选中它,点击“编辑(I)…”。 - 在弹出的“编辑环境变量”窗口中,点击“新建(N)”。
- 输入
%JAVA_HOME%\bin
。(%JAVA_HOME%
会自动引用你前面设置的JAVA_HOME
变量的值)。 - 确保
%JAVA_HOME%\bin
这条记录被添加。你可以使用“上移(U)”将其移动到靠前的位置(可选)。 - 连续点击“确定”关闭所有设置窗口。
注意: %JAVA_HOME%\bin
这种写法依赖于你正确设置了 JAVA_HOME
。如果 JAVA_HOME
没设置对,这里也不会生效。你也可以直接写绝对路径,但不推荐,因为如果JDK升级或路径变更,你需要修改 Path
。
(3) 验证安装
环境变量配置完成后,需要验证是否生效。
- 重新打开一个新的命令行窗口(CMD 或 PowerShell)。必须是新的窗口,旧窗口不会加载刚才修改的环境变量。
- 输入命令
java -version
并按回车。如果看到类似以下的输出(版本号可能不同),说明Java运行环境 (JRE) 配置成功:openjdk version "17.0.11" 2024-04-16 OpenJDK Runtime Environment Temurin-17.0.11+9 (build 17.0.11+9) OpenJDK 64-Bit Server VM Temurin-17.0.11+9 (build 17.0.11+9, mixed mode, sharing)
- 输入命令
javac -version
并按回车。如果看到类似以下的输出,说明Java开发工具 (JDK) 配置成功:javac 17.0.11
如果命令提示“不是内部或外部命令”,或者版本号不对,请仔细检查环境变量的配置步骤,特别是路径是否正确,以及是否是在新的命令行窗口执行的验证。
四、编写并运行第一个Java程序
环境搭好了,让我们来编写并运行第一个Java程序:“Hello, World!”。
4.1 编写源代码
(1) 创建文本文件
- 在你喜欢的位置(例如 D盘根目录或桌面)创建一个新的文件夹,比如
JavaProjects
。 - 在
JavaProjects
文件夹内,创建一个新的文本文档。 - 将文件名修改为
HelloWorld.java
。注意: 文件的扩展名必须是.java
,并且文件名HelloWorld
必须与后面代码中public class
后面的类名完全一致(包括大小写)。确保你的系统显示了文件扩展名,否则你可能创建的是HelloWorld.java.txt
。
(2) 编写代码
用记事本或其他文本编辑器(如 Notepad++, VS Code 等,先不要用复杂的IDE)打开 HelloWorld.java
文件,输入以下代码:
/*** 我的第一个Java程序:HelloWorld* 这是多行注释*/
public class HelloWorld { // 类名必须与文件名一致// main方法是程序的入口点,固定写法// public: 访问修饰符,表示公共的// static: 关键字,表示静态的// void: 返回值类型,表示无返回值// main: 方法名// String[] args: 方法参数,字符串数组public static void main(String[] args) {// System.out.println() 是一个标准输出语句// 作用是向控制台打印括号里的内容,并换行System.out.println("Hello, World!"); // 这是单行注释} // main方法结束} // HelloWorld类结束
代码解释:
public class HelloWorld
: 定义了一个公共的类,名为HelloWorld
。Java 程序的基本单位是类。类名HelloWorld
必须和文件名HelloWorld.java
完全一致。public static void main(String[] args)
: 这是 Java 程序的入口方法(主方法)。程序从这里开始执行。它的格式是固定的。System.out.println("Hello, World!");
: 这是 Java 中用于在控制台(命令行窗口)输出信息并换行的语句。双引号内的Hello, World!
是要输出的字符串内容。//
和/** ... */
: 这些是注释,用于解释代码,不会被编译执行。
保存文件。
4.2 编译Java代码
Java 源代码 (.java
文件) 不能直接被 JVM 执行,需要先用编译器 (javac
) 将其编译成字节码 (.class
文件)。
(1) 打开命令行工具
按下 Win + R
,输入 cmd
,回车,打开命令提示符。
(2) 切换到源代码目录
使用 cd
(change directory) 命令切换到你保存 HelloWorld.java
的目录。例如,如果你保存在 D:\JavaProjects
:
D:
cd JavaProjects
你可以使用 dir
命令查看当前目录下的文件,确认 HelloWorld.java
在这里。
(3) 执行编译命令
在命令行中输入以下命令并回车:
javac HelloWorld.java
javac
是 Java 编译器的命令。HelloWorld.java
是你要编译的源文件名。
如果代码没有语法错误,编译成功后不会有任何提示信息,但你会在 JavaProjects
目录下发现一个新生成的文件:HelloWorld.class
。这就是编译产生的字节码文件,可以被 JVM 执行。
4.3 运行Java程序
现在,我们使用 java
命令来让 JVM 执行编译好的字节码文件。
(1) 执行运行命令
在相同的命令行目录下 (仍然是 D:\JavaProjects
),输入以下命令并回车:
java HelloWorld
java
是启动 JVM 并执行字节码的命令。HelloWorld
是你要运行的类名,注意:这里不要带.class
扩展名! JVM 会自动查找名为HelloWorld.class
的文件来执行。
(2) 查看输出
如果一切顺利,你将在命令行窗口看到如下输出:
Hello, World!
恭喜你!你已经成功编写、编译并运行了你的第一个Java程序!
4.4 常见问题与排查
初学者在编译运行第一个程序时,可能会遇到一些问题:
javac
或java
命令找不到 / 不是内部或外部命令:- 原因: JDK 没有正确安装,或者环境变量 (JAVA_HOME, Path) 没有配置正确,或者配置后没有重新打开命令行窗口。
- 解决: 回到第三节,仔细检查 JDK 安装和环境变量配置步骤,确保路径无误,并务必在新窗口验证。
- 编译错误 (Compiler Errors):
- 原因:
HelloWorld.java
文件中的代码有语法错误,比如:- 类名
HelloWorld
与文件名不一致 (大小写敏感)。 main
方法签名写错 (如Public
写成public
,string
写成String
)。- 语句末尾缺少分号
;
。 - 使用了中文标点符号 (如中文分号
;
或括号()
)。
- 类名
- 解决: 仔细阅读命令行提示的错误信息,它会指出出错的行号和原因。对照示例代码,检查拼写、大小写、标点符号等。
- 原因:
- 运行错误 (Runtime Errors),例如
Could not find or load main class HelloWorld
:- 原因:
- 运行
java
命令时,当前目录不是.class
文件所在的目录。 - 运行
java
命令时,写成了java HelloWorld.class
(多写了.class
)。 - 类名在
java
命令中写错了 (大小写)。 - 编译失败,根本没有生成
HelloWorld.class
文件。
- 运行
- 解决: 确保在
.class
文件所在的目录下执行java
命令,并且只使用类名HelloWorld
。如果编译失败,先解决编译错误。
- 原因:
五、总结
恭喜你完成了Java学习的第一步!在本篇文章中,我们一起学习了:
- 编程语言的基本概念: 它是人与计算机沟通的桥梁。
- Java语言的特点与应用: 面向对象、跨平台(Write Once, Run Anywhere)、健壮、安全、应用广泛。
- Java平台核心:
- JVM (Java Virtual Machine): 运行字节码,实现跨平台。
- JRE (Java Runtime Environment): JVM + 核心类库,用于运行Java程序。
- JDK (Java Development Kit): JRE + 开发工具,用于开发Java程序。三者关系为 JDK > JRE > JVM。
- 环境搭建: 下载并安装了JDK(推荐LTS版本如17或21),并配置了关键的环境变量
JAVA_HOME
和Path
。 - 第一个Java程序: 编写了
HelloWorld.java
源代码,理解了基本结构(类、main
方法、System.out.println
)。 - 命令行编译与运行: 使用
javac
命令将源代码编译成字节码 (.class
文件),使用java
命令运行字节码文件,并在控制台看到了 “Hello, World!” 输出。 - 常见问题排查: 了解了新手可能遇到的环境配置、编译和运行错误及解决方法。
虽然我们今天只用命令行完成了最简单的程序,但这为你后续的学习打下了坚实的基础。在下一篇文章中,我们将介绍更高效的开发工具——集成开发环境 (IDE),让你编写和调试Java代码更加得心应手。敬请期待!