springboot 启动jar包报jar中没有主清单属性

简介: springboot 启动jar包报jar中没有主清单属性

问题描述

springboot项目打完jar包,执行jar命令,直接报错:没有主清单属性

G:\xdclass\demoproject1\target>java -jar demo-project1-1.0.jar
demo-project1-1.0.jar中没有主清单属性
G:\xdclass\demoproject1\target>

原因

打包有问题,导致执行jar包的时候,没有找到程序的main方法入口

解决办法

在pom.xml文件中加入插件,这样才能是可执行的jar包

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

jar包对比

原来的jar包,打出来只有4kb,明显不符合要求

使用插件,打完jar包之后,jar包的大小明显变大了,这才是正常的jar包

运行


相关文章
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
1057 1
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
1733 0
spring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性【解决方案】
spring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性【解决方案】
spring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性【解决方案】
|
XML Java 应用服务中间件
SpringBoot-打包&部署
SpringBoot 项目支持两种打包方式:WAR 包和 JAR 包。JAR 包内置 Tomcat,可直接运行;WAR 包需部署在外部 Tomcat 上。JAR 包通过 `mvn clean package` 打包并用 `java -jar` 运行,支持后台运行和 JVM 参数配置。WAR 包需修改 pom.xml 为 war 类型,移除嵌入式 Tomcat 依赖,添加 servlet-api,并继承 `SpringBootServletInitializer`。配置文件可通过外部 application.yml 覆盖,默认优先级高于 JAR 内部配置。
1760 17
SpringBoot-打包&部署
|
Java Maven
SpringBoot用maven打出的jar只有几kb解决
SpringBoot用maven打出的jar只有几kb解决
1239 0
|
Java Maven
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
3587 0
|
Java Maven Spring
Spring Boot 学习研究笔记(十一)IDEA SpringBoot 打包jar 两种方式
Spring Boot 学习研究笔记(十一)IDEA SpringBoot 打包jar 两种方式
2926 0
|
Java 应用服务中间件
SpringBoot工程打包部署
SpringBoot工程打包部署简介:SpringBoot项目可通过三种方式运行:可执行Jar包、可执行War包和标准War包。其中,可执行Jar/War包可独立运行,标准War包需部署在Tomcat中。具体步骤包括:1. 修改pom.xml添加构建依赖;2. 执行`mvn clean package`命令打包;3. 运行生成的Jar/War包(如`java -jar xxx.jar`)。对于标准War包,还需修改启动类并配置Tomcat依赖。
1628 7
|
存储 Oracle 关系型数据库
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
1746 0
|
人工智能 Java 关系型数据库
Java——SPI机制详解
SPI(Service Provider Interface)是JDK内置的服务提供发现机制,主要用于框架扩展和组件替换。通过在`META-INF/services/`目录下定义接口实现类文件,Java程序可利用`ServiceLoader`动态加载服务实现。SPI核心思想是解耦,允许不同厂商为同一接口提供多种实现,如`java.sql.Driver`的MySQL与PostgreSQL实现。然而,SPI存在缺陷:需遍历所有实现并实例化,可能造成资源浪费;获取实现类方式不够灵活;多线程使用时存在安全问题。尽管如此,SPI仍是Java生态系统中实现插件化和模块化设计的重要工具。
774 0