SpringBoot打包jar包并后台运行

原创 2017年09月28日 00:24:45

最近又进步了。我一直习惯直接在Intellij Idea中直接运行写好的程序,不过也是因为仅仅是写个模拟接口而已。后来到新公司要负责java后台,开始习惯把项目部署到外部Tomcat去测试,或者打成war包让运维去linux上面部署。不过,想来这也是因为只是在做一个目前看起来并不是很重要的项目而已。如果同时做的项目多了,好像自己的做法就不好了。

老大最近点醒了我,原来SpringBoot是可以打包成jar包,而不依赖容器就可以运行的。我立即进行了研究和尝试,分别在win7和ubuntu上面进行了测试,终于达到效果。

一、首先,必须做好一个运行流畅没有毛病的项目。

二、修改pom文件的开头部分:


packaging本来就是jar,我的项目因为不明白这个作用被我改成war了。

三、在application.properties中加入server.port=9090,端口号自己要改一下,别和其他的冲突,建议有文案设置,给一个项目规定一个端口号。因为jar包部署之后是一个项目独占一个容器。调用的时候项目名被隐藏了。

四、在Idea下方的Terminal或者命令行定位到项目文件夹,运行:mvn clean package命令。

有资料说clean前面有个-,结果大半天我没弄出来。后来回家研究发现老提"lean"出错,于是我就写成mvn -cclean package运行,结果还成了。网上很多资料是没有-的。

前提是要另外安装maven。

提示一下,这里最容易出错:

1.网上很多资料在解释这里的问题的时候都去修改pom,加了很多什么东西。后来发现根本不需要,容易出现包不能下载的error,不仅如此,pom中有些提示出错的包还要删去。命令行后面加-e可以打印异常提示。

2.我在项目中写了单元测试,有三个方法,其中有一个方法运行会出错,平时用war部署发现不了问题,打jar包好像一个个都要运行一遍,结果我的一个单元测试方法出问题就不能打包成功,删除就好了。


可以看到jar包的位置在target文件夹下面。

五、部署

win7和linux是一样的。把jar包上传到linux,规划一个文件夹。将命令行定位到该文件夹下,运行命令(win7和linux一样):

java -jar yuedaoapi-1.0.0.jar

就这样,jar包就部署好了。试着调用一下,没有任何问题。

不过如果要在后台调用,需要运行:

java -jar yuedaoapi-1.0.0.jar > log_yuedaoapi.file 2>&1 &


这个方法在linux没有问题,在win7中没有成功。命令行窗口关闭服务就终止了。

如果要关掉后台运行的服务,释放被占用的端口。就要记住运行成功后给出的进程pid,比如上面图中的2637

用kill -9 2637就可以杀死。

如果不小心忘记了记录这个pid,可以用以下两种方式都可以找到进程,看到pid

netstat -ap|grep 9090

lsof -i:9090


这时候再kill就好了。

看一下调用效果:


看得出来效果不错,项目名称被隐藏了。我的Idea终于被解放了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

部署spring-boot工程jar包使其在后台运行

使用命令: java -jar Utrip.jar > log_utripi.file 2>&1 &   前面的是执行jar包启动,后面的让日志写到同级目录下的指定文件中 & 表示...
  • yang920106
  • yang920106
  • 2017年12月11日 22:45
  • 35

使用windows操作系统bat脚本运行打包好的可运行的jar包

今天群里问怎么使用bat文件运行打包好的可运行的jar包,在学习基础的时候学过很多Java中的命令,比如将.java源文件编译为.class字节码文件的javac命令,也学习过使用java命令运行类文...
  • erlian1992
  • erlian1992
  • 2017年09月19日 20:11
  • 941

Spring Boot 以 jar 包方式运行在后台

Spring-boot jar 包方式启动: 首先,为了防止和常用的 Tomcat 8080 端口冲突,将 Spring-boot 项目的端口号设置为 9090。 具体方法:在 applicati...
  • lw_power
  • lw_power
  • 2016年01月10日 20:40
  • 39759

通过maven将springboot项目发布为jar包

如题!描述了如何将springboot的项目用maven打包成jar包。 http://blog.csdn.net/sai739295732/article/details/49444447内嵌tom...
  • OHRadiance
  • OHRadiance
  • 2017年02月23日 15:40
  • 3135

spring boot 打包成jar 包在发布到服务器上

spring boot 打包成jar 包在发布到服务器上,整个流程都是本人亲自实测,应该没有问题。...
  • sai739295732
  • sai739295732
  • 2015年10月27日 10:41
  • 49611

springboot项目打包过程中包含第三方jar

开发IDE是IntelliJ IDEA,数据库是mysql,内置服务器tomcat。 打包步骤: 1. 确定项目调试运行没问题; 2. 将第三方jar放在src/lib,lib是个自定义文件夹,是我推...
  • chinet_bridge
  • chinet_bridge
  • 2017年09月14日 16:58
  • 754

idea打包SpringBoot项目打包成jar包和war

idea打包SpringBoot项目打包成jar包和war
  • Hzt_fighting_up
  • Hzt_fighting_up
  • 2017年10月08日 12:54
  • 4120

IDEA SpringBoot gradle打项目jar包

最近从Android reactnative 转到写后台,一些后台的小东西不是太熟悉,好记性也要记录下哈哈。 IDEA SpringBoot gradle打项目jar包很简单, 在windows下...
  • ddjjll8877
  • ddjjll8877
  • 2017年03月03日 14:24
  • 1743

Spring-Boot 中使用 Gradle 插件打 jar 包,支持 jar 方式启动

以下是我在练习中使用的一个 Spring-Boot 的 build.gradle 文件,通过网络上搜索得到的一个比较全面的配置。allprojects { repositories { ...
  • lw_power
  • lw_power
  • 2017年03月22日 17:27
  • 2925

spring boot打包jar直接运行

spring-boot项目打包成jar形式直接在命令行运行的方法
  • qq_35603331
  • qq_35603331
  • 2017年07月13日 19:44
  • 552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringBoot打包jar包并后台运行
举报原因:
原因补充:

(最多只允许输入30个字)