|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "java与jar实战" |
| 4 | +date: 2025-11-04T12:02:41+0800 |
| 5 | +description: "摘要:本文详细介绍了Java程序从编写到运行的完整流程。首先讲解基础命令:java用于运行程序(可执行.class或.jar文件),jar用于打包文件(支持创建、查看和解压JAR包)。通过HelloWorld示例演示了完整过程:1)编写Java源代码;2)用javac编译为.class文件;3)用jar命令打包成可执行JAR包;4)用java命令运行JAR包。最后对比了手动打包和使用Maven自动打包的区别,并附上完整的流程图解。整个过程涵盖了Java开发的基础打包和运行操作。" |
| 6 | +keywords: "java与jar实战" |
| 7 | +categories: ['未分类'] |
| 8 | +tags: ['Java', 'Jar'] |
| 9 | +artid: "154390702" |
| 10 | +arturl: "https://blog.csdn.net/2401_87663701/article/details/154390702" |
| 11 | +image: |
| 12 | + path: https://api.vvhan.com/api/bing?rand=sj&artid=154390702 |
| 13 | + alt: "java与jar实战" |
| 14 | +render_with_liquid: false |
| 15 | +featuredImage: https://bing.ee123.net/img/rand?artid=154390702 |
| 16 | +featuredImagePreview: https://bing.ee123.net/img/rand?artid=154390702 |
| 17 | +cover: https://bing.ee123.net/img/rand?artid=154390702 |
| 18 | +img: https://bing.ee123.net/img/rand?artid=154390702 |
| 19 | +--- |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | +# java与jar实战 |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +Java 学习的“实战阶段”,一个 **具体的例子**,手把手看清楚整个 |
| 28 | +**“打包流程”和“运行流程”**。 |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +首先来点基础知识 |
| 33 | + |
| 34 | +### 🌞 `java` 命令——用来“运行”Java程序 |
| 35 | + |
| 36 | +你可以把 `java` 想成是“执行机器”,它负责**启动并运行**你写的Java程序。 |
| 37 | + |
| 38 | +#### 🌟 常见用法: |
| 39 | + |
| 40 | +| 命令 | 作用 | 举例 | |
| 41 | +| --- | --- | --- | |
| 42 | +| `java 文件名` | 运行一个编译好的 `.class` 文件 | `java HelloWorld` (注意:不要写 `.class`) | |
| 43 | +| `java -jar 文件名.jar` | 运行一个打包好的 `.jar` 文件 | `java -jar maven-demo-1.0-SNAPSHOT.jar` | |
| 44 | +| `java -version` | 查看你电脑上安装的 Java 版本 | 输出如:`java version "17.0.8"` | |
| 45 | +| `java --help` | 查看所有 `java` 命令的帮助说明 | 帮你学习更多命令 | |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +### 🧱 `jar` 命令——用来“打包”和“打开”JAR文件 |
| 50 | + |
| 51 | +你可以把 `jar` 想成是一个**打包工具**📦, |
| 52 | +它能把许多 `.class` 文件、图片、配置文件等一起压缩成一个 `.jar` 文件。 |
| 53 | + |
| 54 | +#### 🌟 常见用法: |
| 55 | + |
| 56 | +| 命令 | 作用 | 举例 | |
| 57 | +| --- | --- | --- | |
| 58 | +| `jar cf 文件名.jar 文件列表` | **创建**一个jar包 | `jar cf myApp.jar *.class` (把所有 `.class` 打包) | |
| 59 | +| `jar tf 文件名.jar` | **查看**jar包里的文件 | `jar tf myApp.jar` | |
| 60 | +| `jar xf 文件名.jar` | **解压**jar包 | `jar xf myApp.jar` | |
| 61 | +| `jar cfe 文件名.jar 主类名 文件列表` | **创建可执行jar包**(带入口) | `jar cfe myApp.jar com.example.Main *.class` | |
| 62 | + |
| 63 | +📘解释: |
| 64 | + |
| 65 | +* `c` = create(创建) |
| 66 | +* `f` = file(指定文件名) |
| 67 | +* `t` = table(查看内容) |
| 68 | +* `x` = extract(解压) |
| 69 | +* `e` = entry point(指定程序入口) |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +### 💡 三、两者的关系(超简单比喻) |
| 74 | + |
| 75 | +| 动作 | 命令 | 比喻 | |
| 76 | +| --- | --- | --- | |
| 77 | +| 打包成jar | `jar cf myApp.jar ...` | 把玩具零件装进盒子 | |
| 78 | +| 运行jar | `java -jar myApp.jar` | 拿出盒子直接玩玩具 | |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +### 下面是具体例子+实战 |
| 83 | + |
| 84 | +### 🎯 我们要实现的目标: |
| 85 | + |
| 86 | +做一个最简单的 Java 程序,打印一句话: |
| 87 | + |
| 88 | +``` |
| 89 | +Hello, Java! |
| 90 | +
|
| 91 | +``` |
| 92 | + |
| 93 | +然后我们要把它: |
| 94 | + |
| 95 | +1. 编译成 `.class` 文件 |
| 96 | +2. 打包成 `.jar` 文件 |
| 97 | +3. 再运行这个 `.jar` 文件 |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +### 🧩 一、准备源代码(HelloWorld.java) |
| 102 | + |
| 103 | +创建一个文件:`HelloWorld.java` |
| 104 | + |
| 105 | +```java |
| 106 | +public class HelloWorld { |
| 107 | + public static void main(String[] args) { |
| 108 | + System.out.println("Hello, Java!"); |
| 109 | + } |
| 110 | +} |
| 111 | + |
| 112 | +``` |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +### ⚙️ 二、编译成 `.class` 文件 |
| 117 | + |
| 118 | +📍 打开命令行(CMD 或终端),进入你保存文件的目录: |
| 119 | + |
| 120 | +```bash |
| 121 | +cd D:\java-demo |
| 122 | + |
| 123 | +``` |
| 124 | + |
| 125 | +然后输入: |
| 126 | + |
| 127 | +```bash |
| 128 | +javac HelloWorld.java |
| 129 | + |
| 130 | +``` |
| 131 | + |
| 132 | +这条命令会让 Java 把源代码编译成机器能理解的程序。 |
| 133 | +执行完后,你会在文件夹中看到一个新文件: |
| 134 | + |
| 135 | +``` |
| 136 | +HelloWorld.class |
| 137 | +
|
| 138 | +``` |
| 139 | + |
| 140 | +--- |
| 141 | + |
| 142 | +### 📦 三、打包成 `.jar` 文件 |
| 143 | + |
| 144 | +执行下面的命令: |
| 145 | + |
| 146 | +```bash |
| 147 | +jar cfe HelloWorld.jar HelloWorld HelloWorld.class |
| 148 | + |
| 149 | +``` |
| 150 | + |
| 151 | +这条命令分解说明👇: |
| 152 | + |
| 153 | +| 参数 | 含义 | |
| 154 | +| --- | --- | |
| 155 | +| `c` | create(创建) | |
| 156 | +| `f` | file(输出为文件) | |
| 157 | +| `e` | entry point(程序入口类) | |
| 158 | +| `HelloWorld.jar` | 打包好的文件名 | |
| 159 | +| `HelloWorld` | 主类名(有 `main` 方法的那个类) | |
| 160 | +| `HelloWorld.class` | 要打包进去的文件 | |
| 161 | + |
| 162 | +执行成功后,你会得到一个文件: |
| 163 | + |
| 164 | +``` |
| 165 | +HelloWorld.jar |
| 166 | +
|
| 167 | +``` |
| 168 | + |
| 169 | +--- |
| 170 | + |
| 171 | +### 🚀 四、运行 `.jar` 文件 |
| 172 | + |
| 173 | +输入下面的命令: |
| 174 | + |
| 175 | +```bash |
| 176 | +java -jar HelloWorld.jar |
| 177 | + |
| 178 | +``` |
| 179 | + |
| 180 | +💥 输出: |
| 181 | + |
| 182 | +``` |
| 183 | +Hello, Java! |
| 184 | +
|
| 185 | +``` |
| 186 | + |
| 187 | +这说明你的程序运行成功啦🎉! |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +### 🧠 五、整个流程图总结 |
| 192 | + |
| 193 | +``` |
| 194 | +(1) 写代码 HelloWorld.java |
| 195 | + ↓ |
| 196 | +(2) 编译代码 javac HelloWorld.java |
| 197 | + ↓ |
| 198 | +(3) 打包成jar jar cfe HelloWorld.jar HelloWorld HelloWorld.class |
| 199 | + ↓ |
| 200 | +(4) 运行程序 java -jar HelloWorld.jar |
| 201 | + ↓ |
| 202 | +(5) 程序输出 Hello, Java! |
| 203 | +
|
| 204 | +``` |
| 205 | + |
| 206 | +--- |
| 207 | + |
| 208 | +### 🌟 六、如果你是用 Maven |
| 209 | + |
| 210 | +Maven 会自动帮你做第 (2)~(3) 步。 |
| 211 | + |
| 212 | +你只需要在项目根目录运行: |
| 213 | + |
| 214 | +```bash |
| 215 | +mvn package |
| 216 | + |
| 217 | +``` |
| 218 | + |
| 219 | +它会在: |
| 220 | + |
| 221 | +``` |
| 222 | +target/maven-demo-1.0-SNAPSHOT.jar |
| 223 | +
|
| 224 | +``` |
| 225 | + |
| 226 | +生成打包好的 jar,然后你用: |
| 227 | + |
| 228 | +```bash |
| 229 | +java -jar target/maven-demo-1.0-SNAPSHOT.jar |
| 230 | + |
| 231 | +``` |
| 232 | + |
| 233 | +就能运行啦! |
| 234 | + |
| 235 | +--- |
| 236 | + |
| 237 | + |
| 238 | + |
0 commit comments