百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

从0开始,让你的Spring Boot项目跑在Linux服务器

ahcoder 2025-05-09 16:36 3 浏览

1 搭建Linux服务器

1.1 购买阿里云服务器或安装虚拟机

这里建议是CentOS 7.X或CentOS 8.X,当然其他的Linux如deepin、Ubuntu也可以,只是软件环境的安装包和安装方式不同,跑项目都是差不多的

1.2 安装JDK1.8(CentOS 8为例)

下载JDK安装包:

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

选择:
jdk-8u291-linux-x64.tar.gz

安装:

[root@xxx local]# tar -zxvf jdk-8u291-linux-x64.tar.gz
[root@xxx local]# vim /etc/profile

修改环境变量:

export JAVA_HOME=/usr/local/jdk1.8.0_291
export JER_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

刷新配置文件并查看安装结果:

[root@xxx local]# source /etc/profile
[root@xxx local]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b15, mixed mode)

1.3 安装MySQL

参考这篇文章:
https://blog.csdn.net/Mr_YanMingXin/article/details/110858348

1.4 安装Maven(非必要)

为什么说安装Maven不是必要的呢?

因为Java具有跨平台的特性,可以在Windows环境下打包成Jar文件或者war文件,在Linux上一样可以直接运行!

Linux安装Maven的作用

进行项目的编译和打包,当然也可以直接运行

安装步骤:

下载Maven安装包:

https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz

放到Linux上解压并修改配置文件:

[root@xxx local]# tar -zxvf apache-maven-3.8.1-bin.tar.gz
[root@xxx local]# vim /etc/profile

修改环境变量:

export MAVEN_HOME=/opt/apache-maven-3.8.1
export PATH=$MAVEN_HOME/bin:$PATH

刷新配置文件并验证:

[root@xxx local]# source /etc/profile
[root@xxx local]# mvn -v
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /opt/apache-maven-3.8.1
Java version: 1.8.0_141, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_141/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-193.14.2.el8_2.x86_64", arch: "amd64", family: "unix"

别忘了!Maven配置阿里云镜像

[root@xxx apache-maven-3.8.1]# pwd
/opt/apache-maven-3.8.1
[root@xxx apache-maven-3.8.1]# vim conf/settings.xml
大约是在第140多行左右:
<mirrors> 
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>

2 项目部署运行

2.1 项目编译打包(Windows环境下打包成jar文件)

项目的编译和打包一般有两种方式

(1)直接在IDEA中进行项目的打包

(2)使用命令行方式

在含有pom.xml文件的目录下使用cmd

执行mvn clean package命令

这样就代表成功啦,然后就会发现多了一个target目录和一个jar 文件

以上两个过程在Linux下也是一样的!(前提是Linux也安装了Maven)

2.2 部署运行

(1)方式一:可以是未编译成Jar文件情况下

cd到需要运行的项目主目录下,pom.xml文件的目录

[root@xxx placard_demo]# ll
-rw-r--r-- 1 root root 10519 May 27 08:17 placard_demo.iml
-rw-r--r-- 1 root root 5989 May 27 08:17 pom.xml
-rw-r--r-- 1 root root 1366 Apr 1 22:36 README.md
drwxr-xr-x 4 root root 30 Apr 1 10:21 src
drwxr-xr-x 5 root root 61 May 27 14:24 target

使用mvn spring-boot:run命令运行

如果长时间运行请使用nohup mvn spring-boot:run

(2)方式二:已经有Jar文件情况下

cd到需要运行的项目主目录的target目录下,jar文件的目录

[root@xxx target]# ll
total 56372
drwxr-xr-x 6 root root 92 May 27 14:23 classes
drwxr-xr-x 2 root root 28 Jun 27 15:06 maven-archiver
drwxr-xr-x 3 root root 35 May 27 14:23 maven-status
-rw-r--r-- 1 root root 42572685 Jun 27 15:07 placard_demo-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 root root 15147851 Jun 27 15:07 placard_demo-0.0.1-SNAPSHOT.jar.original
drwxr-xr-x 3 root root 17 May 27 14:24 test-classes

使用java -jar xxx.jar命令运行

如果长时间运行请使用nohup java -jar xxx.jar

2.3 注意事项

使用nohup运行时会产生一个日志文件nohup.out,包含项目运行时的全部控制台日志输入,所以报错信息就可以根据它来查看。

2.4 常见问题

(1)jar文件无法运行

Linux的文件权限分为可读、可写、可执行,分别用r、w、x表示

所以无法运行可能是权限的问题,使用ll或ls -a命令查看jar文件的权限

改变权限:

chmod 777 xx.jar 或 chmod ugo+x xx.jar

当然这是一种不太安全的行为,因为把所有用户都赋予了对该文件的全部权限,相对安全的做法请自字百度下chmod 的用法。

(2)查看后台进程

ps -ef|grep java

然后大家就可以利用客户端测试啦!欢迎留言点赞!

相关推荐

Linux基础运维篇:Linux日志管理(第013课)

日志是什么Linux系统中的日志就像是一个记录员,它会把系统中发生的各种事情都记录下来,比如系统什么时候启动了、哪些用户登录了系统、运行了哪些程序、程序有没有出错、硬件有没有问题等等。这些记录对于系...

目标取代deb包格式,深度Linux操作系统公布“如意玲珑”项目

IT之家7月16日消息,7月13日,在上海站的deepinMeetup如意玲珑专场上,深度操作系统官方正式宣布了项目全新的品牌名称——如意玲珑(Linyaps)。目前如意玲珑已...

基于 Linux 快速搭建私有化 Helm Chart 仓库(ChartMuseum 实战指南)

一、前言在Kubernetes中,Helm是最流行的包管理工具,用于简化应用部署与管理。如果你希望在内网环境中部署、管理自己的HelmCharts,就需要搭建一个私有化HelmChart...

Linux环境开发效率--那些强大的命令

之前写了一篇关于linux下常用的几个命令,参考Linux入门--提高工作效率的命令。接下来接着介绍一些在linux下做开发经常使用到得命令,其中有打包压缩命令tar,文件查找命令find,文件内容查...

怎么使用再生龙打包(备份)liunx系统

liunx系统区别于Windows,由于分区格式的特殊性并不能像GHOST那样进行备份封包,有款开源的针对liunx系统备份还原的软件-再生龙(clonezilla),可能有部分人已经用过,本篇文章让...

python打包那些事儿(python的打包)

python是个万金油,什么活都能干,开发一些小应用的时候,要想其他人也方便使用,就需要对程序进行打包生成可执行文件,不再依赖python环境或者其他文件。前几天写了一个视频去水印的小程序,主要依赖f...

「项目部署」使用Jenkins一键打包部署SpringBoot应用

前言嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。一般而言,一个项目部署的由:拉取代码->构建->测试->打包->部署等过程组成,如果我们经常需要部署项目,特别是在微服...

Linux面试最高频的5个基本问题(linux面试题必会题目)

CPU利用率和CPU负载的区别是什么提到CPU利用率,就必须理解时间片。什么是CPU时间片?我们现在所使用的Windows、Linux、MacOS都是“多任务操作系统”,就是说他们可以“同时”运行多...

jtti:如何将Linux服务器的文件系统创建成镜像

如何将Linux服务器的文件系统创建成镜像?如何把Linux文件系统创建成一个镜像文件,也就是"系统打包"?这类操作不仅适用于迁移、备份,还能用于批量部署、自定义系统安装,甚至可以作为...

用Nuitka打包 Python,效果竟如此惊人!

使用Python开发一个程序后,将Python脚本打包成独立可执行文件是一项常见需求。Nuitka是一个Python到C的编译器,它会将Python代码转换为等效的C代码,然后使用标...

Linux基础运维篇:Linux软件包管理(第014课)

什么是软件包管理在Linux系统中,软件包管理就像是一个“软件管家”,负责软件的安装、卸载、更新以及软件之间依赖关系的处理。它把软件及其相关的文件、配置信息等打包在一起,方便用户进行管理和操作。...

给你的Nodejs后端项目打个包(node为基础的后端框架)

前阵子,碰到个问题用Nodejs做了个小项目需要交付客户使用之前Nodejs做的都是自用,所以也没碰到需要打包保护源码之类的问题上网搜了半天,找到的大多是针对Vue的前端项目打包/混淆,例如用...

爆强!直接把 Python 编写的图形程序打包为安卓 APP

请大家多多关注点赞哦如果想使用Python语言编写图形界面程序,那么有不少的框架可以提供支持,比如Tkinter、QtforPython、WxPython等等。不过这些框架都是只能创建桌面图...

几行代码教你zip打包(打包zip命令)

01准备有时我们不想去手动一个个去操作,然后傻等他打包完,python依赖库zipfile很方便地帮助我们封装了解压压缩,shutil用于文件目录处理,方法类似于linux命令。1、安装pipin...

Linux基础运维篇:Linux文件操作超详细版(第007课)

一、Linux文件系统基础1.文件类型Linux一切皆文件,常见文件类型:普通文件(-):文本文件(.txt)、二进制文件(可执行程序)、压缩文件等。目录文件(d):用于组织文件和子目录(类似...