You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Docker镜像构建成功 运行时提示app.jar无主清单属性

报错原因及解决方案

问题1:MaxRAMFraction废弃警告

原因

你使用的是JDK 11,-XX:MaxRAMFraction参数从JDK 10版本开始就已被标记为废弃,后续版本会正式移除,因此JVM启动时会抛出该警告。

解决方法

替换为JDK 10+官方推荐的-XX:MaxRAMPercentage参数即可,原配置-XX:MaxRAMFraction=1等价于-XX:MaxRAMPercentage=100.0,注意该参数值需要使用小数格式。

问题2:no main manifest attribute, in app.jar

原因

虽然你已经添加了spring-boot-maven-plugin依赖,但插件未正确执行repackage目标,构建出的jar包是普通Java jar而非Spring Boot可执行jar,jar包内META-INF/MANIFEST.MF文件中没有指定入口主类的Main-Class属性,因此java -jar命令启动时无法找到程序入口。

解决方法

  • 检查pom.xml中spring-boot-maven-plugin的配置,确保已绑定repackage执行目标,正确配置参考如下:
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <!-- 如有自定义启动类可添加下方configuration配置,无特殊需求可省略 -->
            <configuration>
                <mainClass>com.yourpackage.YourApplicationMainClass</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 确认执行的打包命令正确,需要执行mvn clean package完成全量构建,不要仅执行mvn jar:jar,后者只会生成普通jar包,不会触发Spring Boot的repackage流程。
  • 打包完成后可先在本地验证jar包可用性,执行java -jar target/你的jar包名称.jar,确认可以正常启动后再进行Docker镜像构建。
  • 检查target目录下的jar文件,Spring Boot打包后会生成两个jar包:后缀为.jar的是可执行jar,后缀为.jar.original的是普通jar,确保镜像构建时ADD指令匹配到的是可执行jar文件。

修改后的Dockerfile参考

FROM registry.gitlab.com/client/micro/micro-services/baseimage/database-baseimage/tmo-main:database-baseimage-1.0.1f28a87b

ADD  ./target/*.jar app.jar
ENV TZ=America/Los_Angeles
ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseContainerSupport","-XX:MaxRAMPercentage=100.0","-XX:+UseG1GC","-jar","app.jar"]
EXPOSE 8080

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:45:02