环境变量配置 (最关键的一步)
在命令行中使用 Java,首先需要让系统知道 Java 的可执行文件(javac.exe, java.exe)在哪里存放,这通过设置环境变量 JAVA_HOME 和将 %JAVA_HOME%\bin 添加到 Path 变量来实现。

为什么需要配置?
JAVA_HOME: 指向你的 JDK 安装根目录,这是一个标准做法,很多应用程序(如 Tomcat, Maven)都依赖它来寻找 Java。Path: 系统的“执行路径”,当你在命令行输入一个命令(如java)时,系统会依次查找Path变量中列出的所有目录,直到找到第一个包含该命令可执行文件的目录为止。
如何配置 (以 JDK 17 为例)
-
查找 JDK 安装路径
- JDK 会被安装在类似
C:\Program Files\Java\jdk-17的目录下,你可以通过文件资源管理器确认。
- JDK 会被安装在类似
-
设置
JAVA_HOME- 在 Windows 搜索栏中搜索 “编辑系统环境变量” 并打开。
- 在弹出的 “系统属性” 窗口中,点击 “环境变量...” 按钮。
- 在 “系统变量” 部分(推荐使用系统变量,所有用户都可用):
- 如果没有
JAVA_HOME,点击 “新建...”。- 变量名:
JAVA_HOME - 变量值: 你的 JDK 安装路径,
C:\Program Files\Java\jdk-17
- 变量名:
- 如果已有
JAVA_HOME,选中它点击 “编辑...” 更新路径。
- 如果没有
-
修改
Path变量- 在 “系统变量” 列表中找到
Path变量,选中它,然后点击 “编辑...”。 - 在 “编辑环境变量” 窗口中,点击 “新建”。
- 输入
%JAVA_HOME%\bin。 - 重要提示: 确保
%JAVA_HOME%\bin这一行位于列表的上方,并且不要删除列表中原有的其他路径(如C:\Windows\System32),你可以使用 “上移” 按钮来调整顺序。 - 点击 “确定” 保存所有更改。
- 在 “系统变量” 列表中找到
-
验证配置
(图片来源网络,侵删)- 完全关闭并重新打开你的命令行窗口(CMD 或 PowerShell),新的环境变量不会在已打开的窗口中生效。
- 在新窗口中输入以下命令:
java -version
如果显示 Java 版本信息,说明配置成功。
javac -version
如果也显示编译器版本,说明
Path配置也正确。
编译和运行 Java 程序
现在环境变量已经配置好了,我们来实践一个经典的 "Hello, World!" 程序。
步骤 1: 创建 Java 源文件
- 在任意位置创建一个文件夹,
D:\JavaProjects。 - 在该文件夹中创建一个名为
HelloWorld.java的文件,内容如下:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Windows Command Line!"); } }
步骤 2: 使用 javac 编译
-
打开命令行窗口(CMD 或 PowerShell)。
(图片来源网络,侵删) -
使用
cd(change directory) 命令切换到你刚才创建的文件夹:# 在 CMD 中 cd D:\JavaProjects # 在 PowerShell 中 cd D:\JavaProjects
-
运行编译器命令:
javac HelloWorld.java
- 如果没有报错,你会发现在
D:\JavaProjects文件夹下多了一个HelloWorld.class文件,这是 Java 虚拟机可以理解的字节码文件。
- 如果没有报错,你会发现在
步骤 3: 使用 java 运行
- 确保你仍然在
D:\JavaProjects目录下。 - 运行命令:
java HelloWorld
- 注意: 这里只写类名
HelloWorld,不要加.class后缀,这是最常见的初学者错误。 - 如果一切顺利,命令行会输出:
Hello, Windows Command Line!
- 注意: 这里只写类名
命令行工具详解
java 命令 (运行程序)
-
基本语法:
java [options] class [args...]options: 可选参数,如-Xms,-Xmx(设置堆内存大小)。class: 要运行的类的全名。args: 传递给main方法的参数。
-
运行带
main方法的 JAR 文件:java -jar my-application.jar
-
指定类路径 (Classpath): 如果你的类文件或依赖的 JAR 文件不在当前目录,你需要用
-cp或-classpath来指定它们的路径。# 假设依赖库在 lib 目录下 java -cp ".;lib\library1.jar;lib\library2.jar" com.example.Main
- 重要: 在 Windows 中,路径分隔符是分号 ,而 Linux/macOS 是冒号 。
- 代表当前目录。
javac 命令 (编译程序)
-
基本语法:
javac [options] sourcefilesoptions: 可选参数,如-d(指定输出目录),-encoding(指定源文件编码)。sourcefiles: 一个或多个.java源文件。
-
指定输出目录:
# 将编译后的 .class 文件输出到 bin 目录 javac -d bin src\com\example\HelloWorld.java
CMD 与 PowerShell 的区别
| 特性 | CMD (命令提示符) | PowerShell (Windows PowerShell) |
|---|---|---|
| 默认路径分隔符 | (分号) | (分号) |
| 字符串引用 | 或 | (支持变量插值), (纯文本) |
| 管道符 | (将一个命令的输出作为另一个命令的输入) | (功能更强大,可以传递对象,而不仅仅是文本) |
| 获取命令帮助 | command /? (java /?) |
Get-Help command (Get-Help java) |
| 命令别名 | 较少,基本是 DOS 命令 | 非常多,如 ls (Get-ChildItem), cd (Set-Location) |
| 推荐度 | 简单直接,兼容性好 | 功能强大,是现代 Windows 的首选 |
在 PowerShell 中使用 Java 的示例:
# 切换到项目目录 cd D:\JavaProjects # 编译 javac HelloWorld.java # 运行 java HelloWorld # 查看Java版本 Get-Help java # 可以看到帮助文档 java -version # 和CMD一样
高级技巧
使用批处理文件 (.bat) 自动化
如果你经常需要执行一系列命令,可以创建一个 .bat 文件来自动化。
- 在
D:\JavaProjects目录下创建一个名为build_and_run.bat的文件,如下:@echo off echo Compiling... javac HelloWorld.java if %ERRORLEVEL% NEQ 0 ( echo Compilation failed! pause exit /b ) echo Compilation successful! echo Running... java HelloWorld pause@echo off: 关闭命令回显。if %ERRORLEVEL% NEQ 0: 检查上一个命令的退出码。javac编译失败(退出码不为0),则显示错误信息并暂停。pause: 暂批处理,让你能看到输出,按任意键后窗口才会关闭。
使用 Maven 或 Gradle 管理项目
对于复杂的项目,手动编译和管理依赖非常麻烦,推荐使用构建工具:
- Maven: 使用
pom.xml文件定义项目结构和依赖。# 在项目根目录执行 mvn clean compile # 编译 mvn clean package # 打包成 JAR mvn exec:java -Dexec.mainClass="com.example.HelloWorld" # 运行
- Gradle: 使用
build.gradle文件,语法更灵活。# 在项目根目录执行 gradle build # 编译并打包 gradle run # 运行 main 类
这些工具会自动处理 classpath 问题,大大简化了开发流程。
- 配置环境变量是基础,确保
JAVA_HOME和Path正确设置。 javac用于编译.java文件生成.class文件。java用于运行.class文件,注意不要加.class后缀。- CMD 和 PowerShell 都可以使用,但 PowerShell 更现代、功能更强。
- 对于复杂项目,使用 Maven 或 Gradle 是最佳实践。
- 批处理文件可以简化重复性的命令操作。
希望这份详细的指南能帮助你在 Windows 命令行中顺利地使用 Java!
