Skip to content

第一个 Java 程序

所有编程课的第一个程序都是 Hello World。但很多人照着敲完却不知道代码为什么这样写。理解 Hello World 的每个部分,才能真正入门 Java。

操作步骤

1. 验证开发环境

bash
java -version
javac -version

正常输出示例:

openjdk version "17.0.9" 2023-10-17
javac 17.0.9

如果提示命令找不到,先安装 JDK

2. 创建源文件

创建一个名为 HelloWorld.java 的文件:

java
public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

文件名必须与 public class 类名完全一致:HelloWorld.java ✅ / helloworld.java ❌ / Hello.java ❌。

3. 编译与运行

bash
javac HelloWorld.java
java HelloWorld

输出:

Hello, World!

注意:运行的是类名,不是文件名。

代码解析

公共类声明

java
public class HelloWorld {
    // 类体
}
  • public:访问修饰符,表示类公开可访问
  • class:关键字,声明一个类
  • HelloWorld:类名,必须与文件名一致

main 方法

java
public static void main(String[] args) {
    // 方法体
}
关键字含义
public公开可访问
static静态方法,无需创建对象即可调用
void无返回值
main方法名,JVM 启动入口
String[] args命令行参数数组

JVM 启动时会调用 java 类名,它会在指定类中寻找 public static void main(String[]) 方法作为程序入口。这是 Java 语言的约定,不是可变的。

输出语句

java
System.out.println("Hello, World!");
  • System:系统类,提供标准输入/输出
  • out:标准输出流
  • println():输出内容并换行

常见错误

文件名不匹配

java
// 文件名必须是 HelloWorld.java
public class HelloWorld { }

缺少分号

java
System.out.println("Hello");  // ✅
System.out.println("Hello")   // ❌ 缺少分号

大小写敏感

java
System.out.println("Hello");  // ✅ System 大写
system.out.println("Hello");  // ❌ system 小写

main 方法缺失

Error: Main method not found in class HelloWorld, please define the main method as:
public static void main(String[] args)

常见报错

Error: Could not find or load main class — 检查类名是否正确,确保在正确的目录下运行 java 命令。

javac: command not found — JDK 未正确安装或环境变量未配置。先执行 javac -version 确认。

Error: Main method not found — 检查 main 方法签名:public static void main(String[] args)

进阶练习

带参数的 Hello World

java
public class HelloWithArgs {
    public static void main(String[] args) {
        if (args.length > 0) {
            System.out.println("Hello, " + args[0] + "!");
        } else {
            System.out.println("Hello, World!");
        }
    }
}
bash
javac HelloWithArgs.java
java HelloWithArgs Alice
# 输出: Hello, Alice!

后续可阅读:Java 程序运行机制命令行编译运行控制台打印案例

基于 VitePress 构建