SpringBoot 部署到linux环境
第一部分:Springboot项目部署
说明:工具使用的是IEDA
第一:项目打包
1.在pom文件中添加插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.打包(jar)
idea的右侧有个Maven的标识,
1.点击maven -->Lifecycle -->clean,clean成功以后
2.点击maven -->Lifecycle -->install.
注意:打包的时候,所有的单元测试都会运行,如果测不通的话会报错。
3.打包成功以后,可以在cmd启动先测试一下(java -jar XXX.jar)。OK的话就可以部署啦。
第二:部署到linux
1.执行 sudo yum install lrzsz -y 命令,这个命令是将安装一个能下载、上传的软件
2.执行 rz 命令,这是上传命令,执行之后,选择文件,就可以上传了
3.执行 nohup java -jar demo-0.0.1-SNAPSHOT.jar & 命令 执行这个命令后台就可以启动这个jar包了
第二部分:部署遇到的问题以及解决方案
部署项目的时候,报错:Exception in thread "main" java.lang.UnsupportedClassVersionError
百度得知:这个一般是由于高版本编译低版本运行导致的,jdk版本不一致的问题。
解决思路:解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。
linux版本,在命令行中分别输入java -version和javac -version命令来查看版本是否一致。
结果:linux测试环境的版本是JDK1.7
解决措施:安装JDK1.8
第三部分:JDK1.8安装
准备:
1.工具 Xshell
下载地址:https://www.netsarang.com/download/down_xsh6.html?token=dlBNZDhZeXpWUGhJRGZHU201OEFNQUBlZmw1eWlFWWI5cTJHYlN2V0RZT2ZB
2.下载 linux JDK1.8
下载地址:https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
操作:
1.执行命令:mkdir /usr/java 创建java目录,存放jdk1.8.
2.执行命令:rz 上传JDK1.8压缩包
3.执行命令:tar -zvxf jdk-8u1911-linux-x64.tar.gz 对导入的压缩包进行解压
4.执行命令:ls /usr/java/ 查看是否存在解压后的文件
5.执行命令:vim /etc/profile 修改环境变量
用vim编辑器来编辑profile文件,在文件末尾添加一下内容(按“i”进入编辑):
export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export JAVA_BIN=/usr/java/jdk1.8.0_191/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH} 注意:这里可能还会有其他的路径,不要动原来的,直接使用:进行分隔就OK啦
编辑完之后,执行命令 :wq! 直接保存并退出
6.执行命令:source /etc/profile 让profile文件立即生效
7.执行命令:java -version 测试是否安装成功
第四部分:切换到JDK1.8环境下部署
1.执行命令:cd /usr/java/jdk1.8.0_191/ 到jdk目录下
2.执行命令:rz 上传Springboot项目的jar包
3.执行命令:cd /usr/java/jdk1.8.0_191/bin/ 切换到bin目录下
4.执行命令:nohup ./java -jar ../xxx.jar & 启动项目
5.执行命令:ps -aux | grep 端口号 查看进程
SpringBoot 部署到linux环境的更多相关文章
- .NET 6 从0到1使用Docker部署至Linux环境
前言 作为一名.Net菜鸟开发者,平时对Linux接触的并不多,项目部署这一块都是运维小哥顶着,但是作为混迹在云原生项目组的人咱也不能什么都不知道,该掌握的知识还是要懂的,所以借着这次机会,梳理一下项 ...
- 七. jenkins部署springboot项目(4)-linux环境--远程调试
前提:linux环境,jenkins服务器和springboot服务器不在一台机器. linux环境,jenkins这里就不说了,主要说下和windows环境的不同. 1. jenkins服务器连接s ...
- mpdf部署到linux环境中遇到的问题
首先遇到的问题未:Error - mPDF requires mb_string functions. Ensure that PHP is compiled with php_mbstring.dl ...
- abp框架angular 项目docker 手动部署到Linux环境中
1.https://aspnetboilerplate.com/Templates 2.后端项目发布,在publish中abp默认已经存在DockerFile文件 3.修改后端文件中的DockerFi ...
- SpringBoot 部署到Linux开机自启动和运行
前文 SpringBoot是一个强大的微服务框架,通常都是打包项目成Jar包,并部署到服务器上,本文以Linux服务器部署为主 开机自启动 博文:<https://www.cnblogs.com ...
- Spring Cloud Eureka集群部署到Linux环境
还是三板斧:先改配置文件,支持集群,然后出包,上传到linux环境(3个节点),最后启动jar包跑起来. 1.在原eureka服务端代码(参见Greenwich.SR2版本的Spring Cloud ...
- SpringBoot部署到Linux服务器
今天来谈一下,用SpringBoot写的Demo来配置到Linux服务器. 这里,我用阿里云服务器作为实例,SpringBoot集成了SpringMvC+ mybatis 框架,用maven管理jar ...
- Springboot 部署到linux(二)
之前写了一篇部署的文章,但是打包时会运行所有的单元测试,如果不想测试的话,可以采用这种方式. 第一部分:打包 1.pom.xm添加配置 <plugin> <groupId>or ...
- spring boot打包部署到Linux环境
打包部署说白了就两步:打包.部署.废话不多说,直接拿spring boot自动生成的项目骨架,再添加一个文件用来演示: package com.crocodile.springboot; import ...
随机推荐
- unity中编辑器直接截屏代码
using UnityEngine; using System.Collections; using System.Windows.Forms; public class screenshots : ...
- 开发一个简单的chrome插件-解析本地markdown文件
准备软件环境 1. 软件环境 首先,需要使用到的软件和工具环境如下: 一个最新的chrome浏览器 编辑器vscode 2. 使用的js库 代码高亮库:prismjs https://prismjs. ...
- Django知识总结(二)
拾 ● 模型(M) 一 ● ORM(对象关系映射, Object Relational Mapping) 类----一张表 类的实例对象----表中的一条记录 映射关系 ①python的类名对应的SQ ...
- anytime
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/time.h> ...
- namespace的作用
namespace的用法 1.什么是命名空间 通常我们学c++的时候经常看见头文件下有一句using namespace std,有什么用呢? 例如: #include<iostream> ...
- python笔记27-time模块
import datetime, time#一种是时间戳.一种是格式化时间.一种是时间元组# print(time.timezone) # 和标准时间相差的时间,单位是sprint(int(time. ...
- Exploit-Exercises nebule 旅行日志(五)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level04了 先看下level04的问题描述: (level4.c) #include <stdlib.h> #include ...
- bootstrap-fileinput多图片上传
在页面写一个input框: <input id="subGraphAddress1" name="subGraphAddress" type=" ...
- 信号single
信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 Model signals pre ...
- C++面试笔记(3)
20. 浅拷贝与深拷贝 如何理解C++中的浅拷贝与深拷贝 深拷贝和浅拷贝 在进行对象拷贝时,当对象包含对其他资源的引用,如果需要拷贝这个独享所引用的对象,那就是深拷贝,否则就是浅拷贝 *** 21.构 ...