我的原文:http://note.youdao.com/noteshare?id=c3ccea255affd2c5d79231d67fa29103&sub=187AEEEA5CF34531A2C23156088EDEF9
一、配置java运行环境
直接双击运行jdk exe可执行文件。按步骤安装即可。在安装过程中会生成两个安装路径:
jdk和jre。需要记录下jdk的路径,后面再配置环境变量的时候用到。
3. 配置环境变量
新建JAVA_HOME 变量,值为安装jdk路径。
在系统环境变量的Path中添加JAVA_HOME对应路径下的bin。如下:
4.用命令检验是否安装成功。
【注】jre和jdk的区别:
JRE(java runtime environement) java运行时环境,用来运行java程序
JDK(java development kit) java开发工具包,包含JRE。因此下载jdk即可。
JDK是Sun Microsystems针对Java开发员的产品,JSP运行环境需要JDK的支持。JDK 是整 个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
参考文章:https://www.cnblogs.com/myhome123/articles/7244470.html
二、运行jar包
1、使用命令来运行jar 包:
a、cmd切换到jar包所在文件夹
b、执行命令:java -jar xxx.jar
c、在浏览器中输入ip地址(或者localhost)及端口号,即可访问站点
缺点:使用这种方式的明显缺点就是不能关闭命令窗口,关闭则意味着站点关闭。
2、新建windows服务运行jar包
使用winsw(winsw 是一个可以将任何应用程序注册成windows服务的软件。源码:https://github.com/kohsuke/winsw/releases) 第三方程序将jar包制作 成windows服务运行站点。
只做方式如下:
a、在github上西在WinSW.NET4.exe 和sample-minimal.xml文件。
b、将上述下载的文件和jar包放到同一个目录下。
c、将上述下载的.exe和.xml文件重命名为相同的名字。
d、修改.xml文件配置。如下:
d、cmd命令切换到jar包所在目录,执行windows服务安装命令:xxx.exe install (卸载服务:xxx.exe uninstall)
比如:
注:在运行中输入 services.msc 命令打开windows服务管理窗口;
可以重启电脑,检查服务是否自动启动。
e、运行服务:net start 服务名称; 停止服务:net stop 服务名称;
如果安装不正确,可以在jar包所在目录查看日志:
注:可以将如上安装windows 服务的命令编写成批处理命令(说明:可执行的后缀为bat的文件。方法:新建.txt文本文件,写入批处理命令后修改后缀名为bat即可)。每次发布后,一键发布。
批处理命令内容为:
@echo on
net stop jobAdminService
jobAdminService.exe uninstall
jobAdminService.exe install
net start jobAdminService
jobAdminService 是自定义的。【危险】上面批处理命令会使cpu瞬间飙升,慎用。有什么办法优化一下的,还请知道的朋友赐教啊。
f、输入ip地址及端口号(如果是80端口可以忽略),访问站点
参考文档:https://www.jianshu.com/p/af90db4b54e3
三、springboot项目绑定域名
在第二步骤已经将springboot web站搭好了。下面我们将使用nginx对web站点进行绑定域名。
1、开通一个可以让外网访问的域名。
2、下载inginx安装包,并成功安装。
双击nginx.exe 启动nginx。如果80端口被占用,需要修改nginx.conf中的 端口号。
在浏览器中输入localhost:8005 ,出现如下页面即为安装成功。
3、在nginx.conf 中配置代理。代码如下:
server {
listen 9000;
server_name xxx.com;
location / {
#代理转发的路径
proxy_pass http://4.102.0.146:9500;
#如果springboot站点涉及到跳转,则必须加如下配置。才能保证url一直是配置的域名。否则
#跳转后可能变为ip地址
proxy_set_header Host $http_host;
}
4、如果springboot web站点是需要经过sso授权,且使用的是cookie保存登陆凭证,则必须修改源码:在将登陆凭证存入ip地址及端口域中,也要存入xxx.com (我的实现方式是将xxx.com配置到properties文件中,这样可以灵活部署)
set(domain=null);//写入的cookie域名就是ip地址
set(domain=xxx.com)//指定域名
源码:
/**
* 保存
*
* @param response
* @param key
* @param value
* @param maxAge
*/
private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) {
Cookie cookie = new Cookie(key, value);
if (domain != null) {
cookie.setDomain(domain);
}
cookie.setPath(path);
cookie.setMaxAge(maxAge);
cookie.setHttpOnly(isHttpOnly);
response.addCookie(cookie);
}
注:此处Cookie类是 javax.servlet.http 包下的。