Java 入门教程:Hello World 完整指南(IDE + 命令行 + 原理详解)
一、概述
"Hello World" 是学习任何编程语言的传统起步程序。在 Java 中,这个简单的程序背后涉及几个重要概念:
- Java 程序必须写在类(Class)中
- 程序从
main方法开始执行 - 源代码(
.java)需要先编译为字节码(.class),再由 JVM 运行
本教程提供两种开发方式:IDE(IntelliJ IDEA)和命令行,你可以根据自己的情况选择。建议至少尝试一次命令行方式,以理解编译运行的底层流程。
二、环境准备:安装 JDK
2.1 JDK 是什么
JDK(Java Development Kit,Java 开发工具包)是 Java 开发的基础环境,包含编译器 javac、运行时 java 以及各类开发工具。
与之对比,JRE(Java Runtime Environment)只包含运行时,不包含编译器。学习 Java 开发必须安装 JDK。
| 对比项 | JDK | JRE |
|---|---|---|
| 编译器 javac | ✅ | ❌ |
| 运行时 java | ✅ | ✅ |
| 调试工具 | ✅ | ❌ |
| 适用场景 | 开发 + 运行 | 仅运行 |
2.2 下载与安装
前往 Oracle 官方下载页 下载对应操作系统的 JDK 安装包。推荐下载 JDK 17 或 JDK 21(LTS 版本)。
macOS 用户也可通过 Homebrew 安装:
brew install openjdk@17
2.3 验证安装
打开终端或命令提示符,输入以下命令:
java -version
javac -version
如果两个命令都能输出版本号,说明安装成功。如果 javac 报找不到命令,说明需要将 JDK 的 bin 目录添加到系统 PATH 环境变量中(详见第七节错误排查)。
三、方式一:使用 IntelliJ IDEA
IntelliJ IDEA 是目前最主流的 Java IDE,Community Edition(社区版)免费且功能完备。
3.1 下载安装
前往 JetBrains 官网 下载 Community Edition 并安装。
3.2 创建项目
- 启动 IntelliJ IDEA,在欢迎界面点击 New Project
- 左侧选择 Java
- Name:输入
HelloWorldApp - JDK:从下拉菜单选择已安装的 JDK(如果未显示,点击 Add JDK... 浏览到安装目录)
- 勾选 Add sample code
- 点击 Create
3.3 编写代码
项目创建后,编辑器中会打开 Main.java。将内容修改为:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!"); // 输出: Hello World!
}
}
按 Ctrl+S(Windows/Linux)或 Cmd+S(macOS)保存。
3.4 编译与运行
- 编译:菜单 Build → Build Project(快捷键
Ctrl+F9) - 运行:菜单 Run → Run 'Main'(快捷键
Shift+F10),或点击main方法左侧的绿色 ▶ 按钮
底部 Run 窗口将显示:
Hello World!
3.5 IDE 实用技巧
| 操作 | 方法 |
|---|---|
快速输入 System.out.println() |
输入 sout + Tab |
| 新建 Java 类 | 右键 src → New → Java Class |
| 运行指定文件 | 右键含 main 方法的文件 → Run |
| 自动修复错误 | 光标定位到错误处 → Alt+Enter |
| 重命名 | 选中名称 → 右键 → Refactor → Rename |
四、方式二:Windows 命令行
4.1 创建源文件
- 打开记事本(开始菜单搜索"记事本")
- 输入以下代码:
/**
* HelloWorldApp 类
* 向标准输出打印 "Hello World!" 消息
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // 输出: Hello World!
}
}
- 选择 文件 → 另存为
- 保存位置:
C:\myapplication - 文件名:
"HelloWorldApp.java"(注意两侧加英文双引号,防止记事本自动追加.txt) - 编码选择 UTF-8
- 点击保存
4.2 编译
打开命令提示符(按 Win+R,输入 cmd,回车),切换到源文件目录:
cd C:\myapplication
编译:
javac HelloWorldApp.java
编译成功不会有任何输出。输入 dir 可以看到新生成的 HelloWorldApp.class 文件。
4.3 运行
java -cp . HelloWorldApp
输出:
Hello World!
注意事项:
-cp .表示类路径为当前目录,确保 JVM 能找到.class文件- 参数是类名
HelloWorldApp,不是文件名HelloWorldApp.class - 如果源文件在 D 盘,需要先切换到 D 盘:先输入
D:回车,再cd到目标目录
五、方式三:Linux / macOS 命令行
5.1 创建源文件
打开终端,创建工作目录并进入:
mkdir -p ~/java-examples
cd ~/java-examples
使用编辑器创建源文件(以 vim 为例,也可用 nano 或任何编辑器):
vim HelloWorldApp.java
输入与上述相同的代码,保存退出(vim 中按 Esc,输入 :wq 回车)。
5.2 编译
javac HelloWorldApp.java
编译成功后 ls 可以看到 HelloWorldApp.class。
5.3 运行
java HelloWorldApp
输出:
Hello World!
注意:macOS 和 Linux 上通常不需要 -cp .(默认包含当前目录),但如果遇到找不到类的错误,加上 -cp . 即可。
六、代码结构深入解析
6.1 整体结构
class HelloWorldApp { // ← 类定义
public static void main(String[] args) { // ← main 方法(入口)
System.out.println("Hello World!"); // ← 执行语句
}
}
一个最简单的 Java 程序包含三层结构:类定义 → main 方法 → 执行语句。
6.2 类定义
class HelloWorldApp {
// ...
}
class是关键字,表示接下来要定义一个类HelloWorldApp是类名,遵循大驼峰命名法- 花括号
{}界定类的范围 - Java 要求:所有代码都必须写在类中
如果类声明为 public class,则文件名必须与类名一致。例如 public class HelloWorldApp 对应 HelloWorldApp.java。大小写必须完全一致 —— HelloWorldApp 和 helloworldapp 是两个不同的标识符。
6.3 main 方法
public static void main(String[] args)
这是 JVM 规定的程序入口,签名不可更改。逐个关键字解析:
| 关键字 | 含义 |
|---|---|
public |
公共访问权限,JVM 从外部调用此方法 |
static |
静态方法,不需要创建对象即可调用 |
void |
不返回任何值 |
main |
方法名,JVM 固定查找此名称 |
String[] args |
字符串数组,接收命令行参数 |
String[] args 也可以写成 String args[](C 风格),两者等价,但前者更符合 Java 风格。
命令行参数示例:
java HelloWorldApp Alice Bob
# args[0] = "Alice"
# args[1] = "Bob"
# args.length = 2
6.4 输出语句
System.out.println("Hello World!");
System:java.lang包中的类out:System的静态字段,类型为PrintStream,代表标准输出流println:打印一行文本并换行
与之对比,print 方法打印后不换行,printf 支持格式化输出:
System.out.print("Hello "); // 不换行
System.out.println("World!"); // 换行 → 最终输出: Hello World!
System.out.printf("数字: %d%n", 42); // 格式化 → 输出: 数字: 42
6.5 注释
Java 支持三种注释形式:
| 形式 | 语法 | 用途 |
|---|---|---|
| 单行注释 | // 文本 |
行内简要说明 |
| 多行注释 | /* 文本 */ |
注释多行内容 |
| 文档注释 | /** 文本 */ |
javadoc 生成 API 文档 |
注释会被编译器完全忽略,不影响程序运行。文档注释(/** */)放在类、方法、字段声明前面,javadoc 工具会提取它们生成 HTML 格式的 API 文档。
6.6 编译运行流程
HelloWorldApp.java ──javac──→ HelloWorldApp.class ──java──→ 控制台输出
源代码 字节码 程序结果
(人类可读) (JVM 可读)
.java 文件是你写的源代码,.class 文件是编译器翻译后的字节码。字节码是平台无关的 —— 同一个 .class 文件可以在 Windows、Linux、macOS 上运行,只要有对应平台的 JVM。
JDK 11+ 简化运行:可以直接 java HelloWorldApp.java,JVM 自动编译并执行,不生成 .class 文件。仅限单文件程序。
七、常见错误排查
7.1 编译阶段错误
(1)'javac' is not recognized / javac: command not found
系统找不到编译器。需要将 JDK 的 bin 目录添加到 PATH 环境变量。
Windows:
- 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
- 在系统变量中编辑
Path,添加 JDK 的 bin 路径(如C:\Program Files\Java\jdk-17\bin) - 重新打开命令提示符
Linux/macOS:
export PATH=$PATH:/path/to/jdk/bin
# 写入 ~/.bashrc 或 ~/.zshrc 使其永久生效
(2)Class names are only accepted if annotation processing is explicitly requested
编译命令漏了 .java 后缀。应该写 javac HelloWorldApp.java,不是 javac HelloWorldApp。
(3)语法错误(如 ';' expected)
编译器会报告错误类型和行号,按提示修改即可。常见的语法错误包括:缺少分号、括号不匹配、拼写错误等。
一个错误可能引发多条报错信息。建议先修复第一个错误,重新编译,后续错误可能会自动消失。
7.2 运行阶段错误
(1)NoClassDefFoundError: HelloWorldApp
JVM 找不到 .class 文件。确保当前目录是 .class 文件所在目录,并使用 -cp . 指定类路径:
java -cp . HelloWorldApp
(2)Could not find or load main class HelloWorldApp.class
运行命令中误加了 .class 后缀。正确写法是 java HelloWorldApp(参数是类名不是文件名)。
(3)NoSuchMethodError: main
main 方法签名不正确。必须严格按照 public static void main(String[] args) 书写,不能少写 public、static 或改变参数类型。
7.3 编译错误 vs 运行时错误
| 对比项 | 编译错误 | 运行时错误 |
|---|---|---|
| 发生时机 | javac 编译时 |
java 运行时 |
| 是否生成 .class | 不会 | 已经生成 |
| 典型表现 | 语法错误、类型错误 | 找不到类、找不到方法 |
| 修复方式 | 修改源代码后重新编译 | 检查类路径、运行命令 |
八、小结
通过本教程,你已经掌握了:
- JDK 安装与配置 —— 区分 JDK 和 JRE,正确配置环境变量
- IDE 方式开发 —— 使用 IntelliJ IDEA 创建项目、编写代码、一键运行
- 命令行方式开发 —— 在 Windows、Linux、macOS 上手动编译运行
- 代码结构 —— 类定义、main 方法、输出语句、注释
- 编译运行链路 ——
.java→javac→.class→java - 错误排查 —— 编译错误和运行时错误的常见原因与解决方案
建议动手操作一遍命令行方式,再用 IDE 方式体验效率提升。两种方式都走通之后,你对 Java 的编译运行机制就会有扎实的理解。
关注公众号「IT探险家」,回复 HelloWorld 获取完整演示代码和速查手册。
浙公网安备 33010602011771号