当前位置:首页 > Linux > 正文

Linux打jar包详细步骤教程

使用 javac编译Java文件后,通过 jar cvfe 包名.jar 主类名 编译后的class文件命令打包。,“ bash,javac -d . src/*.java,jar cvfe myapp.jar com.example.Main com/example/*.class,“

如何为Java应用创建JAR包:详细指南

在Linux环境中打包Java应用的JAR文件是部署和分发项目的核心步骤,以下是四种主流方法,涵盖从基础命令到自动化构建工具,每一步均附带操作命令和原理说明。


使用JDK自带jar命令(适合简单项目)

适用场景:手动打包无需依赖的独立应用。

步骤

  1. 编译源代码: javac -d ./classes src/*.java # 将.java文件编译到classes目录
  2. 创建JAR包: jar cvf myapp.jar -C classes . # 打包classes目录所有文件
    • c:创建新JAR
    • v:显示详细过程
    • f:指定文件名
  3. 指定主类(可选)

    编辑MANIFEST.MF文件: Main-Class: com.example.Main # 完整类名,末尾回车换行

    打包时引用清单文件:

    jar cvfm myapp.jar MANIFEST.MF -C classes .

验证运行

Linux打jar包详细步骤教程 第1张

使用Apache Maven(自动化依赖管理)

适用场景:标准项目管理,自动处理依赖和构建流程。

  1. 配置pom.xml: <project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <archive> <manifest> <mainClass>com.example.Main</mainClass> <!-- 指定主类 --> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>
  2. 执行打包: mvn clean package # 清理并打包到target目录

    生成的JAR位于:target/<project-name>-<version>.jar

    Linux打jar包详细步骤教程 第2张


使用Gradle(灵活构建工具)

适用场景:复杂项目,需高度自定义构建流程。

  1. 配置build.gradle: plugins { id 'java' } jar { manifest { attributes 'Main-Class': 'com.example.Main' } }
  2. 执行构建: gradle jar # 生成JAR到build/libs目录


创建可执行JAR(包含所有依赖)

通过Maven生成包含依赖的”Fat JAR”:

  1. 添加maven-assembly-plugin到pom.xml: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
  2. 打包命令: mvn clean package # 生成*-jar-with-dependencies.jar


常见问题解决

  • 错误:no main manifest attribute

    原因:未指定主类。

    解决:检查MANIFEST.MF或构建配置中的Main-Class路径。

  • 依赖缺失

    解决:使用Maven/Gradle的Fat JAR打包或手动添加依赖到-classpath。


方法 优势 推荐场景
jar 命令 无需额外工具 简单无依赖项目
Maven 自动依赖管理 标准Java项目
Gradle 构建脚本灵活 复杂多模块项目
Fat JAR 包含所有依赖 独立分发应用

通过正确选择工具,您可高效生成JAR包并确保跨环境稳定运行,对于大型项目,优先推荐Maven/Gradle以保障构建流程的标准化和可维护性。


引用说明: 参考了Oracle官方JAR文档、Apache Maven官方指南及Gradle用户手册,结合实践经验验证了操作步骤的准确性,技术细节遵循Java SE标准规范。

Linux打jar包详细步骤教程 第3张

0