在Linux服务器上运行springBoot项目!

今天闲的无聊,写了一个定时发送邮件到指定邮箱的一个小项目,因为写的很粗糙,这里就不展示代码了,主要记录一下用到的技术:
1.JavaMail
2.Spring-Task
3.在Linux上运行

一、JavaMail:
 JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如SMTP,POP3,IMAP,还有MIME等。我们在使用JavaMail API 编写邮件时,无须考虑邮件的底层实现细节,只要调用JavaMail 开发包中相应的API类就可以了。
因为他使用起来很简单,傻瓜式开发,直接调接口,所以可以直接下载下来用就好了;

JavaMail下载:

二、Spring-Task
Spring-Task是Spring自带的定时任务工具,spring task可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种。
我用的是注解的方式,加两个注解,就搞定了,是不是很简单~
首先在启动类上加一个@EnableScheduling 注解,开启定时任务。

然后写一个类,里面写上你要定时执行的任务,在这个要执行定时任务的方法上面加上一个@Scheduled注解,注解里面写执行时间,用corn表达式,为了方便,我在写的时候是直接把时间写死的,一般我们在工作中都是写配置文件里面,从中获取。

三、打包部署
1.在IDEA中测好后,就可以打包上传服务器运行了,首先先clean下,然后用package包,因为我这个是SpringBoot项目,所以打成jar包就好了,springboot项目已经内嵌了Tomcat我们不需要再安装。

打包完成是下面这样,在这个项目的 target目录下就好生成这个项目的jar包。

2.将jar包上传服务器
我用的是FinalShell这个工具连接服务器,用这个上传功能上传,比较方便快捷。

3.安装java环境

我这个服务器没有安装过Java环境,所以还不能运行这个项目,我们先安装jdk,配置下环境。
因为Oracle官网用Cookie限制下载方式,使得眼下只能用浏览器进行下载,使用其他方式可能会导致下载失败。

官网手动下载(下载Linux环境下的jdk1.8)


下载好之后将这个jdk源码包,可以创建一个java的文件夹来放,上传到这个java文件夹里面。
使用解压命令解压:

tar -zxvf jdk-8u301-linux-x64.tar.gz

解压完成

删掉jdk源码包

rm -f jdk-8u301-linux-x64.tar.gz

接下来配置jdk环境变量:
/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西
所以,我们要将jdk配置到/etc/profile,才可以在任何一个目录访问jdk
执行下面命令,进入配置页面

vi /etc/profile

按i进入编辑,在profile文件尾部添加如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

注意:第一行是你解压后得到的那个jdk文件路径,不一定跟我一样

添加好之后Esc --> :wq保存退出
通过命令source /etc/profile让profile文件立即生效

source /etc/profile

测试是否成功,我们可以看下版本号,执行java -version

4.运行项目jar包
这里要记录一个遇到的小错误:
因为我目前是在jdk包的位置,不在jar包所在文件夹,所以执行Java -jar 命令报错了,原因是找不到我那个项目的jar包在哪。

所以我们在运行java -jar 命令的时候,后面跟上项目的全路径。

java -jar /usr/local/email-0.0.1-SNAPSHOT.jar

你以为这样就可以了???
不不不,这样是有问题的,
使用java -jar xxx.jar 命令时,一旦FinalShell窗口关闭,JAR就停止运行了.
如果想让项目在后台一直运行,通过如下命令启动JAR:

nohup java -jar xxx.jar  > consoleMsg.log 2>&1 &

上面的2 和 1 的意思如下:
0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)

注意:consoleMsg.log日志文件要先创建,执行命令:

touch consoleMsg.log

最后可以查看日志,看看运行了没有;

tailf -n 10 consoleMsg.log  #打印最后10行日志,并且持续跟踪日志。
tail -n 2000 consoleMsg.log | more   #分页查看最后2000行日志。

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值