You need to enable JavaScript to run this app. 如何在包含多个类的Java项目中将单个类打包为jar文件
优惠活动
大模型
产品
解决方案
定价
更多

如何在包含多个类的Java项目中将单个类打包为jar文件

单独打包Java单个类为jar文件的操作方法

场景1:使用原生JDK命令行操作

  • 首先确保目标类已经完成编译,生成了对应的.class文件,注意如果类有包名,需要保留包路径对应的目录结构,比如类的全限定名是com.example.DemoUtil,那编译后的class文件路径应该是com/example/DemoUtil.class
  • 执行jar打包命令:
jar cvf target-jar-name.jar path/to/YourClass.class
  • 参数说明:
    • c:创建新的jar包
    • v:输出打包详情日志,可选
    • f:指定输出的jar包文件名
  • 如果需要让这个jar可以直接运行,需要指定主类,在打包时添加e参数:
jar cvfe executable-demo.jar com.example.YourMainClass com/example/YourMainClass.class

场景2:Maven项目下操作

  • 首先修改pom.xml,添加maven-jar-plugin配置,指定要打包的类和排除其他类:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.3.0</version>
      <configuration>
        <!-- 仅包含指定的类,支持通配符 -->
        <includes>
          <include>com/example/YourTargetClass.class</include>
        </includes>
        <!-- 如果需要指定主类可运行,添加下面的配置 -->
        <archive>
          <manifest>
            <mainClass>com.example.YourTargetClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>
  • 执行打包命令:
mvn package
  • 打包完成后即可在target目录下找到仅包含目标类的jar包

场景3:Gradle项目下操作

  • 修改build.gradle配置,自定义jar任务的包含规则:
jar {
    // 仅包含指定的类
    include 'com/example/YourTargetClass.class'
    // 可选:指定主类
    manifest {
        attributes 'Main-Class': 'com.example.YourTargetClass'
    }
}
  • 执行打包命令:
gradle jar
  • 生成的jar包在build/libs目录下

注意事项

  • 如果目标类依赖了项目内的其他类或者第三方依赖,单独打包后运行时需要将对应的依赖也加入类路径,否则会报类找不到错误
  • 保留包目录结构是关键,如果打包时丢失了包路径,会导致类加载时无法正常找到对应类

内容的提问来源于stack exchange,提问作者Fabio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 19:15:03