Skip to content

第一个 Java 程序

概述

学 Java 的第一步是亲手写一个能编译、能运行的程序。本文带你用文本编辑器 + 命令行完成:编写源码、用 javac 编译、用 java 运行,并理解程序入口 public static void main(String[] args) 的含义。掌握这些后,再使用 IDE 会更容易理解其背后在做什么。

前置条件

请先完成 JDK 安装与环境变量 的配置,确保命令行中 javacjava 可用。


基本步骤概览

  1. 编写:在一个 .java 文件中写类与 main 方法。
  2. 保存:文件名必须与公共类名一致(区分大小写)。
  3. 编译:用 javac 文件名.java 得到 .class 字节码。
  4. 运行:用 java 类名(不要加 .class)执行程序。

编写你的第一个程序

最小可运行示例

在任意目录下新建一个文本文件,命名为 Hello.java(类名为 Hello,故文件名必须是 Hello.java),内容如下:

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

说明:

  • public class Hello:定义一个名为 Hello 的公共类;一个 .java 文件中最多只能有一个 public 类,且文件名必须与该类名一致。
  • public static void main(String[] args):JVM 约定的程序入口方法,没有它就无法用 java 命令直接运行该类。
  • System.out.println(...):向控制台输出一行字符串并换行。

提示

若类不是 public,类名可与文件名不一致,但一个源文件里仍建议只放一个类,且文件名与类名一致,便于维护。

编译与运行

在终端或命令提示符中,进入 Hello.java 所在目录,执行:

bash
# 编译:生成 Hello.class
javac Hello.java

若无报错,当前目录下会多出 Hello.class。再执行:

bash
# 运行:指定类名,不要写 .class
java Hello

预期输出:

text
Hello, Java!

注意

运行命令是 java Hello,不是 java Hello.class。JVM 需要的是类名,而不是文件名。


理解程序入口:main 方法

JVM 启动时会查找「具备固定签名的入口方法」,即:

java
public static void main(String[] args)
修饰符/类型含义简述
public方法对外可见,JVM 才能调用。
static类方法,不依赖对象即可执行,程序启动时还没有任何对象。
void无返回值。
String[] args命令行参数数组;例如执行 java Hello a b,则 args[0]"a"args[1]"b"

因此:每个可被 java 类名 直接运行的类,都必须有一个且仅有一个符合上述签名的 main 方法。

示例:使用命令行参数

下面这段程序会打印「你好」和传入的第一个参数(若存在):

java
public class Greet {
    public static void main(String[] args) {
        System.out.println("你好!");
        if (args.length > 0) {
            System.out.println("第一个参数: " + args[0]);
        }
    }
}

保存为 Greet.java,编译并运行:

bash
javac Greet.java
java Greet
# 输出:你好!

java Greet 张三
# 输出:你好!
#       第一个参数: 张三

常见问题与注意事项

文件名与类名不一致

若类声明为 public class Hello,源文件必须命名为 Hello.java(大小写一致)。否则会报错:

text
类 Hello 是公共的,应在名为 Hello.java 的文件中声明

编码与乱码

若源码或输出含中文,建议将 .java 文件保存为 UTF-8 编码;编译时若遇乱码,可指定编码:

bash
javac -encoding UTF-8 Hello.java

在错误目录下执行命令

javacjava 默认针对当前工作目录。若在错误目录执行 javac Hello.java,会提示「找不到文件」;若在错误目录执行 java Hello,会提示「找不到或无法加载主类」。解决方式:先 cdHello.java 所在目录再执行命令。

包名与直接运行

若类在包中,例如:

java
package com.example;
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello!");
    }
}

则需把 Hello.java 放在 com/example/ 目录下,编译时在项目根目录执行:

bash
javac com/example/Hello.java
java com.example.Hello

提示

初学阶段可先不写 package,把类放在「默认包」中,便于在任意目录下直接 javacjava。熟悉后再按包结构组织代码。


小结

  • 一个可运行的 Java 程序需要:公共类 + public static void main(String[] args)
  • 源文件命名:文件名 = 公共类名 + .java
  • 两步命令:javac 文件名.java 编译,java 类名 运行(不要写 .class)。
  • 理解 main 的签名与 args 的含义,有助于后续使用 IDE 和理解「运行配置」。

下一步可学习 IDE 选择与使用,用 IDE 管理项目、运行与调试,会更高效。


相关链接

基于 VitePress 构建