温馨提示×

Centos编译Java如何生成Jar包

小樊
45
2026-08-30 20:40:23
栏目: 编程语言

CentOS 上编译 Java 并生成 Jar 包,通常按下面步骤来(以 OpenJDK 8/11/17 为例,适用于大多数情况)。


一、确认 Java 环境

1️⃣ 查看是否已安装 Java

java -version
javac -version

2️⃣ 如果没有安装 JDK(以 CentOS 7/8 为例)

CentOS 7

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

CentOS 8 / Stream

dnf install -y java-17-openjdk java-17-openjdk-devel

⚠️ 一定要安装 devel,否则没有 javac


二、手动编译 Java 并生成 Jar(基础方式)

1️⃣ 编写 Java 代码

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

2️⃣ 编译 Java 文件

javac Hello.java

生成:

Hello.class

3️⃣ 打包成 Jar 包

✅ 无 MANIFEST(不指定主类)

jar cf hello.jar Hello.class

✅ 指定主类(可运行 Jar)

jar cfm hello.jar MANIFEST.MF Hello.class

MANIFEST.MF 示例

Main-Class: Hello

⚠️ 注意:

  • 文件末尾必须有一个 空行
  • 类名不包含 .class

4️⃣ 运行 Jar 包

java -jar hello.jar

三、多文件 / 包结构编译

示例目录

src/
 └── com/
     └── example/
         └── App.java

编译

javac -d out src/com/example/App.java

打包

jar cf app.jar -C out .

指定主类

jar cfm app.jar MANIFEST.MF -C out .

MANIFEST.MF

Main-Class: com.example.App

四、使用 Maven(推荐 ✅)

1️⃣ 安装 Maven

dnf install -y maven

2️⃣ 创建项目

mvn archetype:generate \
 -DgroupId=com.example \
 -DartifactId=myapp \
 -DarchetypeArtifactId=maven-archetype-quickstart \
 -DinteractiveMode=false

3️⃣ 编译并打包

cd myapp
mvn package

生成的 Jar:

target/myapp-1.0-SNAPSHOT.jar

4️⃣ 运行

java -jar target/myapp-1.0-SNAPSHOT.jar

五、使用 Gradle(可选)

dnf install -y gradle
gradle build

六、常见问题

jar 不是命令

yum install -y java-1.8.0-openjdk-devel

no main manifest attribute

Main-Class 未指定

bad class file

Java 版本不一致(编译和运行版本不同)

七、总结

场景 推荐方式
学习 / 简单测试 javac + jar
正式项目 Maven / Gradle
CentOS 服务器 OpenJDK

如果你愿意,可以告诉我:

  • ✅ Java 版本
  • ✅ 是否使用 Maven / Spring Boot
  • ✅ 是否需要 可执行 Jar

我可以给你 完整的实战示例

0