关于SpringBoot含多个主类打包成jar包后运行的问题

一、SpringBoot项目环境

  1. IntelliJ IDEA 2018.3.2
  2. Mysql 5.1

二、两种打包方式

  1. 使用Maven里的package一键打包
  2. 使用IDAE的Project Structure里的Artifacts打包

三、两种方式打包结果

  1. 使用Maven的package。这种打包方式会将打包后的jar放在target文件里,一个是没有后缀original文件,一个有后缀original的文件。将前者部署到服务器上。
    在这里插入图片描述
    使用这种方式打包后,部署到服务器上,可以使用以下命令运行主类
    java -jar *****.jar [参数1] [参数2] [参数3]  #文中提到的参数都是我自己函数需要的参数,没有的话可以不填参数
    
    但是,无法使用以下命令运行指定的jar包中的其他主类
    java -cp *****.jar com.InsertDataToUserInfo(其他主类的具体包名) [参数1] [参数2] [参数3]
    
    以下是我的项目结构:
    在这里插入图片描述
  2. 使用IDEA的Project Structure里的方式打包
    左上角File------>Project Structure------->Artifacts--------> ➕ -------->JAR-------> From modules with dependencies
    在这里插入图片描述
    重点
    选择MainClass------>路径填到src即可,白框的内容不要,即到xxxxx\src------->OK(会自动导入依赖)
    在这里插入图片描述
    点击工具栏上的Build------->Build Artifacts----->Build
    在这里插入图片描述
    在这里插入图片描述
    用这种方式打包后的文件是生成的新目录,我的是out目录。
    使用这种方式,可以使用以下命令运行,执行指定主类
    java -cp *****.jar com.InsertDataToUserInfo [参数1] [参数2] [参数3]
    
    但是,却无法使用以下命令执行默认主类
    java -jar *****.jar [参数1] [参数2] [参数3]
    
    开始我以为是在pom文件里配置了默认主类的原因,但是去掉了还是不行。
    最后我就分别用两种方式打包了jar,一个拿来运行默认主类,一个拿来运行指定主类。
    切记,在打包时,一定只能有一个标记为SpringBootApplication的类,不然会打包失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值