打包与运行

在程序开发完后,一般需要在专用的服务器上运行,因此需要将开发的程序打包,并在服务器上运行

程序打包

SpringBoot程序是基于Maven创建的,在Maven中提供有打包的指令,叫做package。本操作可以在Idea环境下执行。

mvn package

注:正常运行时会有一个test测试,如果程序中包含增删改的操作,会导致多出一些数据,为防止这些情况,可以在idea中选中test,点击上方的闪电按钮,表示跳过test

打包后会产生一个与工程名类似的jar文件,其名称是由模块名+版本号+.jar组成的。

程序运行

程序包打好以后,就可以直接执行了。在程序包所在路径下,执行指令。

java -jar 工程包名.jar

执行程序打包指令后,程序正常运行,与在Idea下执行程序没有区别。

注:

1.如果你的计算机中没有安装java的jdk环境,是无法正确执行上述操作的,因为程序执行使用的是java指令。

2.jar支持命令行启动需要依赖maven插件的依赖,因此打包时需要确保有SpringBoot对应的maven插件

SpringBoot程序打包失败处理

如图,使用阿里云创建SpringBoot工程时,默认会有下面的skip属性,其代表的是忽略当前插件,而该插件是打包插件,忽略后就会导致运行时出现“没有主清单属性”

打包时需要有下面的插件

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

  1. SpringBoot程序添加配置后会打出一个特殊的包,包含Spring框架部分功能,原始工程内容,原始工程依赖的jar包
  2. 首先读取MANIFEST.MF文件中的Main-Class属性,用来标记执行java -jar命令后运行的类
  3. JarLauncher类执行时会找到Start-Class属性,也就是启动类类名
  4. 运行启动类时会运行当前工程的内容
  5. 运行当前工程时会使用依赖的jar包,从lib目录中查找

SpringBoot为了打出来的包能够独立运行,将所有需要使用的资源全部都添加到了这个包里。这就是为什么这个jar包能独立运行的原因。

命令行启动常见问题

可能会出现端口占用的问题

# 查询端口

netstat -ano

# 查询指定端口

netstat -ano |findstr "端口号"

# 根据进程PID查询进程名称

tasklist |findstr "进程PID号"

# 根据PID杀死任务

taskkill /F /PID "进程PID号"

SpringBoot项目快速启动(Linux版)

在Linux系统下

jar包一般放在HOME目录,或者根目录下的user目录下

之后使用相同指令即可启动

java -jar 工程包名.jar

注:需要Linux系统下有Java的jdk环境,且版本需要匹配

由于程序运行中需要访问数据库,且是从本地访问的,因此Linux系统中也需要有对应的数据库和数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值