杰瑞科技汇

Java应用程序如何独立运行与交互?

什么是 Java Application?

Java Application 指的是一个用 Java 语言编写的、可以独立运行的程序,它区别于其他类型的 Java 程序,

Java应用程序如何独立运行与交互?-图1
(图片来源网络,侵删)
  • Java Applet: 已经被淘汰的、运行在浏览器中的小程序。
  • Java Servlet/JSP: 运行在服务器端,用于生成 Web 页面。
  • JavaFX Application: 用于构建现代化桌面 GUI 应用程序的框架(本质上也是一种特殊的 Java Application)。

我们通常所说的 "Java 程序",默认指的就是这种可以直接在操作系统上启动的独立应用程序,比如一个计算器软件、一个游戏或者一个数据处理工具。


Java Application 的核心要素:main 方法

所有可执行的 Java Application 的入口点都是一个特定的方法,叫做 main 方法,Java 虚拟机在启动程序时,会首先寻找并执行这个方法。

main 方法的签名是固定的:

public static void main(String[] args)

我们来分解一下这个签名中的每个关键字:

Java应用程序如何独立运行与交互?-图2
(图片来源网络,侵删)
  • public: 访问修饰符,表示 main 方法是公开的,任何类都可以访问它,JVM 需要能够从外部调用它。
  • static: 关键字,表示 main 方法属于 HelloWorld 这个类本身,而不是属于这个类的某个具体对象,这意味着我们不需要创建 HelloWorld 的实例(对象)就能调用这个方法,JVM 在程序启动时,还没有创建任何对象,所以它需要一个静态方法来作为入口。
  • void: 返回类型,表示 main 方法在执行完毕后不返回任何值,程序结束后,操作系统会接收到一个退出码(0 通常表示成功,非 0 表示错误),但这不是通过 return 语句返回的。
  • main: 方法名,这是 JVM 约定的方法名,它会自动寻找这个名称的方法。
  • String[] args: 参数列表,这是一个字符串类型的数组,它允许我们在运行程序时从命令行向程序传递参数,运行 java MyProgram arg1 arg2args 数组就会包含 ["arg1", "arg2"]

第一个 Java Application:"Hello, World!"

这是学习任何编程语言的经典第一步,让我们创建一个完整的、可以运行的 Java 程序。

步骤 1: 编写源代码

创建一个名为 HelloWorld.java 的文件,并输入以下代码:

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        // 向控制台打印 "Hello, World!" 字符串
        System.out.println("Hello, World!");
    }
}

代码解释:

  1. public class HelloWorld { ... }: 定义一个名为 HelloWorld 的公共类,在 Java 中,代码必须写在类里面。注意:文件名必须和 public 类的名称完全一致(包括大小写),所以这个文件必须叫 HelloWorld.java
  2. public static void main(String[] args) { ... }: 这就是我们上面讨论的程序入口点。
  3. System.out.println("Hello, World!");: 这是 Java 中最常用的输出语句之一,它会将括号内的字符串输出到控制台(终端/命令行),并在末尾换行。

步骤 2: 编译源代码

打开你的终端(在 Windows 上是 cmdPowerShell,在 macOS 或 Linux 上是 Terminal),进入到 HelloWorld.java 文件所在的目录,然后运行 Java 编译器 javac

Java应用程序如何独立运行与交互?-图3
(图片来源网络,侵删)
# 编译 .java 文件,生成 .class 字节码文件
javac HelloWorld.java

如果编译成功,你会发现当前目录下多了一个 HelloWorld.class 文件,这是 Java 虚拟机可以理解的字节码文件,而不是我们能直接阅读的源代码。

步骤 3: 运行程序

使用 Java 虚拟机 java 来运行这个字节码文件:

# 运行 .class 文件
java HelloWorld

注意: 这里你只需要类名 HelloWorld,而不需要带 .class 后缀。java 命令是用来启动 JVM 的,它会去加载指定的类并执行其 main 方法。

你应该会在终端看到输出:

Hello, World!

恭喜!你已经成功创建并运行了你的第一个 Java Application!


Java Application 的开发流程

一个典型的 Java 应用程序开发流程如下:

  1. 需求分析: 明确程序要做什么。
  2. 设计: 设计程序的结构、类和方法。
  3. 编码: 使用 Java 语言编写源代码(.java 文件)。
  4. 编译: 使用 javac 编译器将源代码编译成字节码(.class 文件)。
  5. 运行: 使用 java 命令启动 JVM,运行字节码。
  6. 测试: 检查程序是否符合预期,修复 Bug。
  7. 打包与部署: 将编译好的 .class 文件和依赖库打包成一个可分发的格式(如 .jar 文件),并部署到目标机器上。

打包成可执行的 .jar 文件

对于稍复杂的应用程序,我们通常会将所有 .class 文件打包成一个 .jar (Java Archive) 文件,方便分发和执行。

步骤 1: 创建 manifest.txt 文件

这个文件告诉 JVM 哪个类是程序的入口点(即包含 main 方法的类)。

创建一个名为 manifest.txt 的文件,内容如下:

Main-Class: HelloWorld

注意:

  • Main-Class: 后面有一个空格。
  • 类名后面不能跟 .class
  • 文件末尾最好有一个空行,并且不要有 BOM 头(在 Windows 记事本中保存时需要注意)。

步骤 2: 使用 jar 命令打包

在终端中,使用以下命令来创建 .jar 文件:

# cvfm: c(创建), v(显示详细过程), f(指定jar文件名), m(指定manifest文件)
jar cvfm HelloApp.jar manifest.txt HelloWorld.class

执行后,你会得到一个 HelloApp.jar 文件。

步骤 3: 运行 .jar 文件

你可以直接使用 java 命令来运行 .jar 文件:

# -jar 选项告诉 java 命令从 jar 文件中读取 Main-Class
java -jar HelloApp.jar

同样,你会看到 "Hello, World!" 的输出。


现代 Java 开发:使用 IDE

虽然手动使用 javacjava 命令有助于理解底层原理,但在实际开发中,几乎所有的开发者都使用集成开发环境

  • IntelliJ IDEA (社区版是免费的)
  • Eclipse IDE for Java Developers
  • VS Code (配合 Java 扩展包)

IDE 提供了以下便利:

  • 代码自动补全
  • 语法高亮和错误检查
  • 一键编译和运行
  • 强大的调试工具
  • 项目管理(构建工具集成,如 Maven/Gradle)

使用 IDE 开发 "Hello, World!" 只需要:

  1. 创建一个新的 Java 项目。
  2. 在项目中创建一个 HelloWorld.java 文件并粘贴代码。
  3. 右键点击文件,选择 "Run 'HelloWorld.main()'"。

IDE 会自动处理编译和运行的所有细节。


进阶:使用外部库

大多数应用程序都需要使用外部库(比如用于网络请求、数据库连接、JSON 解析等),在现代 Java 开发中,我们通常使用 MavenGradle 这样的构建工具来管理项目依赖。

下面是一个使用 Maven 的简单示例:

创建 Maven 项目

在 IDE 中创建一个新的 Maven 项目,它会自动生成一个 pom.xml 文件。

添加依赖

编辑 pom.xml 文件,在 <dependencies> 标签内添加你需要的库,添加一个流行的 JSON 处理库 Gson

<dependencies>
    <!-- Google Gson for JSON processing -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.10.1</version>
    </dependency>
</dependencies>

使用库

IDE 会自动下载依赖,现在你可以在代码中导入并使用 Gson 了:

import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class GsonExample {
    public static void main(String[] args) {
        // 创建一个 Gson 对象
        Gson gson = new Gson();
        // 创建一个 JSON 对
分享:
扫描分享到社交APP
上一篇
下一篇