Jar 包部署
把打出来的 jar 包放到 Linux 服务器下,直接使用 Java 启动:
[root@centos] nohup java -jar yourProject.jar &其中 & 表示后台运行程序:
结果会输出到终端使用 Ctrl + C 发送 SIGINT 信号,程序免疫关闭session发送SIGHUP信号,程序关闭使用 nohup 运行程序:
结果默认会输出到 nohup.out使用Ctrl + C发送SIGINT信号,程序关闭关闭session发送SIGHUP信号,程序免疫由于 nohup 输出的文件会越来越大,很占内存,我们可以选择重定向到 /dev/null 中,放弃 nohup.out 的信息输出:
[root@centos] nohup java -jar yourProject.jar >/dev/null 2>erro.log 2>&1 &这里 >/dev/null 表示把所有信息都扔掉,2>err.log 表示把错误输出到 erro.log 文件中(0表示标准输入,1表示标准输出,2表示错误输出)
如果什么也不输出的话直接使用:
[root@centos] nohup java -jar yourProject.jar >/dev/null 2>&1 &列出所有后台执行的作业,并且每个作业前面都有个编号:
[root@centos] jobs将某个作业调回前台控制,只需要 fg + 编号 即可
[root@centos] fg 2查看端口占用的线程 pid
[root@centos] netstat -nlp | grep :8080 # 或者 [root@centos] ps -aux | grep java杀死进程
# 正常杀死 [root@centos] kill -15 pid号 # 强制杀死 [root@centos] kill -9 pid号war 包部署
Spring Boot 由于默认内嵌 Tomcat 容器,所以打出来的 jar 包即可直接运⾏,但是我们 有时候希望将其部署于外置的 Tomcat 服务器中,这时候就要打 war 包了。
打 war 包之前需要做⼏个代码上的配置:
将:
<packaging>jar</packaging>修改为:
<packaging>war</packaging>修改 pom.xml ⽂件,在原先的配置:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>下面加入如下配置:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>provided 表示该包只在编译和测试中使⽤,在发布时去除。
在 Spring Boot 中我们平常都⽤ main ⽅法启动的⽅式,都有⼀个 SpringBootApplication 的启动 类,例如 xxxApplication.java 的启动主类⽂件.
⽽我们现在需要类似于 web.xml 的配置⽅式来启动 Spring 应⽤,为此,我们在 Application 类的同 级⽬录下再添加⼀个 SpringBootStartApplication 类:
SpringBootStartApplication.java代码如下:
public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 在这⾥要指向原先⽤main⽅法执⾏的 xxxApplication 启动类 return builder.sources(xxxApplication.class); } }等待构建打成 war 包,打包结果仍然位于 target 目录下,然后直接部署到 Tomcat 服务器中即可。