环境准备(安装JDK)
-
下载JDK
访问Oracle官网或OpenJDK下载对应操作系统的JDK(推荐JDK 11+)。 -
配置环境变量
- Windows
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量
- 在
系统变量
中新建:- 变量名:
JAVA_HOME
→ 变量值:JDK安装路径(如C:Program FilesJavajdk-21
)
- 变量名:
- 编辑
Path
变量 → 新增两项:%JAVA_HOME%bin
%JAVA_HOME%jrebin
- Linux/macOS
在终端执行(路径替换为实际JDK路径):echo 'export JAVA_HOME=/usr/lib/jvm/jdk-21' >> ~/.bashrc echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc source ~/.bashrc
- Windows
-
验证安装
命令行输入:java -version # 显示Java版本 javac -version # 显示编译器版本
若显示版本号(如
java 21.0.1
),则配置成功。
编译与运行Java程序
步骤1:编写Java源代码
- 新建文本文件,命名为
HelloWorld.java
(文件名必须与主类名一致)。 - 用记事本或代码编辑器写入:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } }
保存到指定目录(如
D:java_project
)。
步骤2:编译源代码
- 打开命令行(Windows:
Win+R
→ 输入cmd
;Linux/macOS:打开终端)。 - 切换到源代码目录:
cd D:java_project # Windows cd ~/java_project # Linux/macOS
- 执行编译命令:
javac HelloWorld.java
- 成功时:生成
HelloWorld.class
字节码文件(无输出提示)。 - 失败时:命令行显示错误信息(如语法错误)。
- 成功时:生成
步骤3:运行程序
java HelloWorld # 注意:不要加 .class 后缀
输出结果:Hello, Command Line!
常见问题解决
-
javac
或java
命令未找到- 原因:环境变量配置错误。
- 解决:重新检查
JAVA_HOME
和Path
配置。
-
错误:
类名HelloWorld是公共的, 应在名为 HelloWorld.java 的文件中声明
- 原因:文件名与类名不一致(如类名
HelloWorld
但文件名为hello.java
)。 - 解决:确保文件名和类名完全一致(包括大小写)。
- 原因:文件名与类名不一致(如类名
-
运行时提示
找不到主类
- 原因1:运行目录下无
.class
文件 → 重新执行javac
。 - 原因2:包声明未处理 → 若代码有包(如
package com.example;
),需:javac -d . HelloWorld.java # 生成包路径目录 java com.example.HelloWorld # 带包名运行
- 原因1:运行目录下无
高级用法
-
编译多个文件
javac Main.java Helper.java # 同时编译多个文件
-
指定输出目录
javac -d ./out HelloWorld.java # 将.class文件输出到out目录 java -cp ./out HelloWorld # 从out目录运行
-
依赖库编译
若需引用外部JAR(如lib.jar
):javac -cp .;lib.jar Main.java # Windows分号 javac -cp .:lib.jar Main.java # Linux/macOS冒号 java -cp .;lib.jar Main # 运行同理
为什么推荐命令行编译?
- 深入理解流程:掌握从源码到字节码的转换过程。
- 灵活控制:适用于自动化脚本、服务器环境等无IDE场景。
- 排查问题:直接暴露错误,避免IDE的“黑盒”操作。
提示:熟练后可用构建工具(如Maven/Gradle),但命令行是根基,多练习可提升调试能力!
引用说明:
- Oracle官方文档:Java Development Kit User’s Guide
- OpenJDK编译指南:Building OpenJDK
- 环境变量配置参考:Windows, Linux/macOS
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/41251.html