Java基础 - Java 编译,打包,运行
Java Package
package 是 Java 的命名空间机制,用于将类(class)、接口(interface)组织在一起,形成模块化、层次化的结构。
project/
└── src/
└── com/
└── companyName/
└── app/
└── models/
└── Person.java这里的Person.java文件位于包 package com.companyName.app.models;.
导入其他包的类
import com.companyName.app.models.Person;
import com.companyName.app.models.*;Java编译与运行
以如下文件结构为例:
project-folder/
├── lib/
│ └── gson-2.10.1.jar
├── src/
│ ├── Main.java --> package src
│ └── models/
│ └── Person.java --> package src.models编译
Java编译基本语法:javac [选项] 文件名.java
javac -cp "lib/gson-2.10.1.jar" -d out src/models/Person.java src/Main.java- -cp 是 classpath 的缩写,用来告诉编译器 在哪找外部的类和库。
- -d 指定输出目录
运行
Java运行基本语法:java [选项] 类名
# 运行时指定classpath
java -cp "out:lib/gson-2.10.1.jar" src.Main::Linux/macOS 上的路径分隔符
.jar文件
Definition
在 Java 开发中,你写了很多 .java 文件,编译之后变成 .class 文件。但是如果想要
- 让别人用你的程序
- 部署到服务器上运行
- 用到很多类和资源文件
管理许多.class文件变成了难题,这时就要用.jar来打包这些零碎的文件,合成一个独立的、结构良好的文件。这个文件可以运行,也可以作为库被其他项目引用。
其实 .jar 就是一个 压缩包(类似 .zip),里面的结构通常像这样:
myapp.jar
├── META-INF/
│ └── MANIFEST.MF ← 描述文件,记录入口点(程序从哪里开始)
├── com/
│ └── example/
│ └── MyClass.class
├── config.properties
├── image.png以如下文件结构为例:
project-folder/
├── lib/
│ └── gson-2.10.1.jar
├── src/
│ ├── Main.java --> package src
│ └── models/
│ └── Person.java --> package src.models创建,运行jar文件
- 供别人使用的类(普通的jar)
jar cf mylib.jar -C out/ .- c:create,表示创建一个新的 JAR 文件
- f:file,表示后面跟的是 JAR 文件名
mylib.jar:要创建的目标 JAR 文件名-C out/ .:表示进入 out/ 目录,并将其中的所有内容(.)打包进 JAR
- 可执行 JAR(别人可以运行你的程序)
创建 MANIFEST.MF 文件:
Manifest-Version: 1.0
Main-Class: src.Mainjar cfm yourlib.jar MANIFEST.MF -C out/ .
# 执行jar文件(自动查找 Main-Class 并执行 main() 方法)
java -cp "mylib.jar:lib/gson-2.10.1.jar" src.Main- Maven打包
可以把我的 jar 和所有依赖 合并成一个大 jar 文件
mvn clean packageMaven 会自动下载所需的依赖,并将所有文件打包成一个 JAR 文件,通常会生成一个类似 target/yourlib-1.0.0.jar 的文件。
Usage
- 打包项目成一个文件
- 作为功能组件被其他 Java 程序引用使用(像 Spring、MyBatis、Lombok 都是以 .jar 的形式分发的)
.jar文件可以直接部署到服务器上运行
Java基础 - Java 编译,打包,运行
http://example.com/2025/07/09/JAVA/java-cli/