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终于被解放了。

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

springBoot 连接打包成jar包运行时,获取图片上传文件、前端页面等文件

springBoot 连接打包成jar包运行时,获取图片上传文件、前端页面等文件问题背景:在使用springboot进行开发时,会将项目打包成jar包,进行运行。 问题1:使用文件上传功能后,怎么获...

springboot怎么使用maven打包时将本地jar包一块打进去

如果我们通过本地像springboot工程中引入了jar包,那么我们在打包发行的时候,怎么将本地jar也打包到该工程发行包中去呢? 1、我们需要手工引入本地jar包        选中工程-->单击鼠...

Springboot中如何引入本地jar包,并通过maven把项目成功打包成jar包部署

问题描述最近尝试引入阿里云的短信验证码,阿里云的core sdk是maven就有的,但是短信相关的jar包却不是放在maven的,所以得引入本地的下载回来的jar包。本地开发直接引入,idea是可以直...

Linux后台运行java的jar包

前言 需要执行的jar为:sysrd-test.jar,并已经上传到了Linux服务器上! 直接运行方式 java -jar sysrd-test.jar通过这种方式部署的时候,SecureCRT...

nohup命令在linux系统,控制jar包后台运行

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld...

Java GUI打包成jar包运行、注意事项、不弹出黑框、自带jre

我们在开发Java GUI后需要打包运行 步骤如下:       在eclipse 中直接点击export,然后选择 runnable jar,然后选择Main 类           最后Finis...

包的定义及导入(打包编译、运行以及jar命令的使用)

1.包的编译与运行 首先为什么要使用打包命令呢? 如果有多个人共同开发一个项目的时候,这时肯定会出现类名称相同的情况。这样以来开发就比较困难!因为相同的文件会出现覆盖的情况!于是我们采用了包的概念...

解决关于Eclipse打包jar包后 运行结果错误的问题

这个问题针对解决在eclipse中运行结果正常,但是在打包jar后运行结果出现错误的问题,尤其是有中文输入输出的时候错误更加明显的情况,很可能读者遇见和笔者一样诡异的问题,就是在IO输入输出上对字符编...
  • wycmglq
  • wycmglq
  • 2016年05月11日 15:55
  • 2243

可运行jar包的几种打包/部署方式

java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接...

java打包可运行的jar包

整理了下各种打包可执行jar的方法,个人而言,觉得使用spring-boot插件更方便,且生成的jar包也更精简,推荐使用   方法一:使用maven-jar-plugin插件 org...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringBoot打包jar包并后台运行
举报原因:
原因补充:

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