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

  1. 执行 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();

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值