SpringBoot 部署到linux环境
SpringBoot 项目部署到linux环境
参考文档:
https://blog.csdn.net/zeng_ll/article/details/80217788
https://www.cnblogs.com/kaile/p/10194362.html
https://blog.csdn.net/c1481118216/article/details/53010963
一、项目打包
1.1. 在pom.xml文件中添加springboot打包插件
<build> <finalName>${project.artifactId}</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.*</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.yml</include> </includes> <!--是否替换资源中的属性--> <filtering>false</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.TopoStartApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
1.2. 在代码目录使用 mvn clean package 打包
在指令窗口输入:mvn clean package
在target目录下可以看到生成的jar包
二、在windows系统执行
指令窗口执行: java -jar topo.jar
三、在linux系统执行
3.1. 上传jar包至linux服务器
3.2. 在linux服务器上运行Jar文件
$ java -jar topo.jar
这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台运行呢:
方法一:
$ nohup java -jar topo.jar 2>&1 & //nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 //当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中 //除非另外指定了输出文件。
方法二:
$ nohup java -jar topo.jar > system.log 2>&1 & //这种方法会把日志文件输入到你指定的文件中,没有则会自动创建
3.3 查看某端口占用的线程的pid: 可以看出当前端口占用的pid是101003
-bash-4.3$ netstat -nlp|grep 20011 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 :::20011 :::* LISTEN 101003/java -bash-4.3$
3.4 通过pid可以查看当前程序运行情况
(1)查看linux中的当前java进程:
-bash-4.3$ jps 70483 SCS_ServerStart 70713 SCC_ClientStart 103690 Jps 18628 start.jar 101003 jar -bash-4.3$
(2)查看java进程参数值:初始堆内存
-bash-4.3$ jinfo -flag InitialHeapSize 101003 -XX:InitialHeapSize=262144000 -bash-4.3$
(3)jstat
查看类装载信息:
-bash-4.3$ jstat -class 101003 Loaded Bytes Unloaded Bytes Time 10187 19399.0 1 1.0 11.09 -bash-4.3$
(4)查看线程内容:jstack PID
-bash-4.3$ jstack 101003
四、验证启动情况
在浏览器上访问验证(windows环境启动效果)
linux环境启动效果
五、FAQ
- 执行 java -jar topo.jar 启动过程中报错空指针
通过错误可以看出获取对象Project为空
查看初始化逻辑,获取文件路径失败。
这种写法在eclipse中可以执行成功,但是在jar包中获取文件路径就失败了。
原因是获取的文件路径只能到jar包,jar包的内部文件目录无法获取到。
解决方法
i).把该模版文件放到jar项目外,在项目中配置该模版文件的绝对路径,不太推荐这种方式,可能会忘记配置模版
ii.)通过 ClassPathResource resource = new ClassPathResource(“static/office_template/word_replace_tpl.docx”);方式读取
直接使用它的流方法
ClassPathResource resource = new ClassPathResource("conf/serverconf.yml"); File sourceFile = resource.getFile(); InputStream fis = resource.getInputStream();
- 点赞
- 收藏
- 分享
- 文章举报
- Spring Boot + Java爬虫 + 部署到Linux (一、环境配置,新建一个Spring Boot项目)
- java学习 springboot项目在Linux环境下的docker容器中的部署和测试
- 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)
- Spring Boot 如何部署到 Linux 中的服务
- 腾讯云(linux-CentOS)服务器上部署SpringBoot项目,并让它持续运行到后台&服务器终止进程方法
- springboot 部署Linux/Unix
- Mac部署Spring-boot开发环境IDEA
- Spring Boot学习总结(5)——SpringBoot Jar应用Linux后台部署执行
- spring-boot项目在外部tomcat环境下部署
- spring-boot项目在外部tomcat环境下部署
- spring boot 图片上传后的图片读取路径在win与linux环境配置的差别
- spring boot项目在外部tomcat环境下部署
- 使用linux部署Spring Boot程序
- spring-boot项目在外部tomcat环境下部署
- Spring boot 项目Linux部署
- springboot2 linux上jar部署
- springBoot 多环境执行部署方式
- Spring Boot 最佳实践(二)集成Jsp与生产环境部署
- mac和linux下使用Docker,部署SpringBoot项目到docker
- ant+maven+springboot----->windows部署到linux