与 Web 应用程序(在服务器上运行)或移动 App 不同,Java Application 通常指一个可以直接在操作系统(如 Windows, macOS, Linux)上运行的桌面或命令行程序,它拥有自己的主入口点,并且是学习 Java 基础的绝佳起点。

我们将分步进行,从最简单的 "Hello, World!" 开始,逐步构建一个更复杂的交互式应用程序。
第一步:环境准备
在开始编写代码之前,请确保你已经安装了:
- Java Development Kit (JDK): 这是编译和运行 Java 程序所必需的工具包,你可以从 Oracle 官网 或 OpenJDK 下载并安装。
- 集成开发环境 (IDE): 强烈推荐使用 IDE,它能极大地提高开发效率,流行的选择包括:
- IntelliJ IDEA (社区版是免费的)
- Eclipse IDE
- VS Code (配合 Java 扩展)
本文将以 IntelliJ IDEA 为例进行讲解,但概念同样适用于其他工具。
第二步:创建你的第一个 Java Application
我们将创建一个经典的 "Hello, World!" 程序。

创建新项目
- 打开 IntelliJ IDEA。
- 选择 "File" -> "New" -> "Project"。
- 在左侧菜单中选择 "Java"。
- 确保右侧的 "Project SDK" 已经正确配置为你安装的 JDK 版本。
- 点击 "Create"。
编写代码
- IntelliJ 会自动创建一个
src目录(source code 的缩写),并可能已经包含一个Main.java文件,如果没创建,在src目录上右键 -> "New" -> "Java Class"。 - 将文件命名为
Main(或任何你喜欢的名字,但类名必须和文件名完全一致,包括大小写)。 - 在
Main.java文件中输入以下代码:
// Main.java
public class Main {
// 这是程序的主入口点,Java 虚拟机 (JVM) 会从这里开始执行代码
public static void main(String[] args) {
// System.out.println 是一个向控制台输出文本并换行的命令
System.out.println("Hello, World!");
}
}
运行程序
- 在代码编辑区的空白处右键,选择 "Run 'Main.main()'"。
- 或者,点击编辑区右上角的绿色三角形 "▶" 按钮。
运行后,你会在下方的 "Run" 窗口中看到输出:
Hello, World!
代码解析:
public class Main: 定义一个名为Main的公共类,在 Java 中,所有代码都必须存在于类中。public static void main(String[] args): 这是应用程序的主方法,是程序的入口点。public: 表示这个方法可以被任何其他类访问。static: 表示这个方法属于Main类本身,而不是类的某个实例,这样我们就可以在创建Main对象之前调用它。void: 表示这个方法在执行完毕后不返回任何值。main: 这是 JVM 识别的特殊方法名。String[] args: 这是一个字符串数组参数,用于接收在命令行运行程序时传入的参数。
System.out.println("..."): 这是一个标准的 Java 语句,用于在控制台打印一行文本。
第三步:构建一个交互式应用程序
让我们创建一个稍微复杂一点的程序:一个简单的计算器,它可以接收用户输入并进行加法运算。
使用 Scanner 类获取用户输入
Scanner 是 Java java.util 包中的一个类,可以用来读取用户的输入。

代码实现
创建一个新的 Java 类,命名为 SimpleCalculator。
// SimpleCalculator.java
import java.util.Scanner; // 1. 导入 Scanner 类
public class SimpleCalculator {
public static void main(String[] args) {
// 2. 创建一个 Scanner 对象,用于读取从控制台输入的数据
Scanner scanner = new Scanner(System.in);
// 3. 提示用户输入第一个数字
System.out.print("请输入第一个数字: ");
double num1 = scanner.nextDouble(); // 读取用户输入的 double 类型数字
// 4. 提示用户输入第二个数字
System.out.print("请输入第二个数字: ");
double num2 = scanner.nextDouble();
// 5. 计算并打印结果
double sum = num1 + num2;
System.out.println("计算结果是: " + sum);
// 6. 关闭 scanner,以释放系统资源 (好习惯)
scanner.close();
}
}
运行和交互
- 运行
SimpleCalculator。 - 程序会首先打印 "请输入第一个数字: ",并等待你输入。
- 输入一个数字(
10),然后按回车键。 - 程序接着打印 "请输入第二个数字: ",再次等待输入。
- 输入另一个数字(
5),然后按回车键。 - 程序会立即打印出计算结果。
示例运行:
请输入第一个数字: 10
请输入第二个数字: 5
计算结果是: 15.0
代码解析:
import java.util.Scanner;: 因为Scanner不在默认的java.lang包中,所以需要import语句来引入它。Scanner scanner = new Scanner(System.in);: 创建Scanner的一个实例,参数System.in表示标准输入流,也就是键盘输入。scanner.nextDouble(): 调用Scanner对象的方法来读取下一个double类型的输入。System.out.print(...): 与println类似,但它不会在输出后换行,这样用户的输入就可以出现在同一行。scanner.close(): 非常重要! 当你不再需要Scanner时,应该关闭它,这会释放与Scanner关联的系统资源,避免资源泄漏。
第四步:打包和分发(创建可执行的 JAR 文件)
当你完成开发后,可能希望将你的程序分发给没有安装 IDE 的朋友,最好的方式是将其打包成一个 JAR (Java Archive) 文件。
配置项目
在 IntelliJ IDEA 中,你需要告诉它哪个类是主类,以及如何运行它。
- 打开 "File" -> "Project Structure"。
- 选择 "Artifacts"。
- 点击 号,选择 "JAR" -> "From modules with dependencies..."。
- 在弹出的窗口中:
- Main Class: 选择你的主类(
com.example.Main)。 - Build on: 确保 "Build on make" 被勾选。
- 点击 "OK"。
- Main Class: 选择你的主类(
构建JAR文件
- 回到主界面,选择 "Build" -> "Build Artifacts..."。
- 在菜单中选择你刚刚创建的 JAR 配置(
simple-calculator:jar)。 - IntelliJ 会开始编译项目并打包 JAR 文件,构建完成后,你可以在
out/artifacts/simple_calculator_jar目录下找到生成的simple-calculator.jar文件。
运行 JAR 文件
- 打开命令行工具(在 Windows 上是 CMD 或 PowerShell,在 macOS/Linux 上是 Terminal)。
- 使用
cd命令切换到 JAR 文件所在的目录。 - 运行以下命令:
java -jar simple-calculator.jar
如果你的程序需要命令行参数,可以这样传递:
java -jar my-app.jar arg1 arg2
总结与最佳实践
- 类名和文件名: 必须完全一致(包括大小写)。
- 主方法:
public static void main(String[] args)是所有 Java Application 的起点。 main方法的参数:args数组用于接收命令行参数,你可以通过args[0]来访问第一个参数,以此类推,使用前务必检查数组长度,避免ArrayIndexOutOfBoundsException。- 资源管理: 对于像
Scanner,FileInputStream等需要系统资源的对象,使用完毕后务必调用close()方法,推荐使用try-with-resources语句,它可以自动关闭资源,更加安全。
使用 try-with-resources 的例子:
public class Main {
public static void main(String[] args) {
// try-with-resources 语句
try (Scanner scanner = new Scanner(System.in)) {
System.out.print("请输入你的名字: ");
String name = scanner.nextLine();
System.out.println("你好, " + name + "!");
} // scanner.close() 会在这里自动被调用,即使发生异常
}
}
希望这个详细的指南能帮助你顺利开始 Java Application 的开发之旅!
