前言
最近做一个项目,实现用户免密单点登录腾讯企业邮箱https://exmail.qq.com/。
项目是Springboot + Redis类型,客户给予的是一台未配置Java环境的Windows服务器。所以需要先搭建Java环境,再将Java服务部署上去。
一:Java环境配置
1.1 安装并配置JDK
JDK下载,因为项目用到的是Springboot2.0,所以需要JDK1.8以上版本。
JDK安装
配置环境变量
右键计算机,点击属性
选择点击高级系统设置
选择点击环境变量
新建系统变量,变量名为JAVA_HOME,变量值为你安装的JDK位置。
编辑系统变量Path,在变量值末尾加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。
新建系统变量,变量名为classpath,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar
最后全部保存确定。然后在cmd命令行窗口,输入java -version命令,出现下面结果则表示JD安装并配置完成。
1.2 安装并启动Redis
下载后解压到你想安装的目录下。
临时启动Redis服务,在安装目录下启动cmd命令行窗口,然后输入redis-server.exe redis.windows.conf命令,回车。如果出现一个方形图标,安装临时服务成功。
通过以上面命令,只创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。
通过客户端连接测试,在安装目录下再启动一个cmd命令行窗口,然后输入redis-cli.exe命令,回车。出现下面则连接成功。
修改端口和密码。在Redis的安装目录下找到 redis.windows-service.conf 文件,用文本编辑器打开。找到port所在行,把默认的端口更改,例如改为6380。找到requirepass所在行,回车另起一行,例如输入requirepass 123456,这样Redis密码就为123456,设置好保存后文件,重启redis服务。
默认服务安装 如果是上面方式临时启动redis服务,则需要保持打开命令行窗口启动着。以下方式是将Redis设置为Windows下的服务,并在后台启动。
注册Redis服务:在Redis安装目录下启动一个cmd命令行窗口,然后输入redis-server.exe --service-install redis.windows.conf --loglevel verbose命令,回车。注意!!!一定要把临时服务关闭,否则安装不上。
再输入redis-server.exe --service-start命令,启动服务。
启动服务:redis-server.exe --service-start
暂停服务:redis-server.exe --service-stop
卸载服务:redis-server.exe --service-uninstall
客户端连接测试。输入redis-cli.exe -p 6380连接,此时我们随便输入命令例如列出所有键命令keys *,会报错,因为我们还未输入密码验证。输入auth 123456,123456是我们刚设置的Redis密码。就可以执行命令了。
二:部署Java服务
2.1 命令行临时启动服务
正常我们是通过命令java -jar xx.jar启动Java服务,但是此方式有个缺点是要一直保持打开着窗口。
2.2 后台启动Java服务
新建run.bat文件,在文件中输入以下内容,保存。最后双击run.bat文件即可后台启动Java服务。
title Service Run:是为启动窗口设置窗口名称Service Run
color 3E:设置窗口颜色3E
-Xbootclasspath/a:application.yml:启动服务使用外部配置文件application.yml,这里是使用相对路径,application.yml文件和exmail-sso-server.jar文件在同一目录下。如果不使用外部配置文件,这串命令可以去除。
echo:打印我们想在控制台输出的内容,也可去除。
timeout /t 3:窗口在多久后自动关闭,这里设置3秒。
@echo off
title Service Run
color 3E
start javaw -jar -Xbootclasspath/a:application.yml exmail-sso-server.jar
echo ------------------------ exmail service -------------------------
echo .
echo -------------------- service start succefully -------------------
echo .
echo -----------------------------------------------------------------
timeout /t 3
exit
启动后打开的 窗口如下
如果我们想要终止删除这个Java后台服务,可以按如下方式终止:
首先通过服务端口号找到服务进程ID,命令为netstat -ano |findstr 端口号,也可以通过命令tasklist在进程列表中查找。
杀死进程:taskkill /pid 进程号。
如果报以下错误,则需要使用taskkill -F /pid 进程号命令强制杀死进程。
错误:无法种子PID为 xxxx 的进程。
原因:只能强行终止这个进程(带 /F 选项 )
查看杀进程命令的帮助命令为taskkill /?
也可以通过system idle process杀掉进程,例如我们这是使用javaw命令启动服务的,所以可以使用taskkill -f -t -im javaw.exe杀掉进程。
我的关闭服务脚本文件shutdown.bat文件内容如下
@echo off
title Service Shutdown
color 3E
taskkill -f -t -im javaw.exe
echo ------------------------ exmail service ------------------------
echo .
echo -------------------- service stop succefully -------------------
echo .
echo ----------------------------------------------------------------
timeout /t 3
exit
双击后窗口如下
我的服务文件路径位置存放如下
到此,Windows服务器安装Java环境,以及部署Java项目就大功告成了。
本文同步分享在 博客“Μr.ηobοdy”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。