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

简介: 让你的Spring Boot项目跑在Linux服务器

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的作用

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

安装步骤:

放到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中进行项目的打包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cb4XKe0T-1624778631425)(从0开始,让你的Spring Boot项目跑在Linux服务器.assets/image-20210627145102813.png)]

(2)使用命令行方式

在含有pom.xml文件的目录下使用cmd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6wefiZKC-1624778631427)(从0开始,让你的Spring Boot项目跑在Linux服务器.assets/image-20210627145423668.png)]
执行mvn clean package命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7YfR65R-1624778631428)(从0开始,让你的Spring Boot项目跑在Linux服务器.assets/image-20210627145516062.png)]
这样就代表成功啦,然后就会发现多了一个target目录和一个jar 文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IugWbV2v-1624778631430)(从0开始,让你的Spring Boot项目跑在Linux服务器.assets/image-20210627145636325.png)]
以上两个过程在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表示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fxOkzhrT-1624778631432)(从0开始,让你的Spring Boot项目跑在Linux服务器.assets/image-20210627151504891.png)]
所以无法运行可能是权限的问题,使用ll或ls -a命令查看jar文件的权限

改变权限:

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

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

(2)查看后台进程
ps -ef|grep java

在这里插入图片描述
如果后台有进程,大家就可以利用客户端测试啦!欢迎留言点赞!

相关文章
|
2天前
|
存储 JSON 前端开发
【Spring项目】表白墙,留言板项目的实现
本文主要介绍了表白墙项目的实现,包含前端和后端代码,以及测试
|
2天前
|
JSON 前端开发 Java
|
2天前
|
缓存 前端开发 Java
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
|
1月前
|
监控 IDE Java
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
61 8
W9
|
1月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
93 1
|
1月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
38 4
|
22天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
1月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
27 0
|
SQL 关系型数据库 MySQL
你学会如何将项目部署到Linux系统上了吗?
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。
你学会如何将项目部署到Linux系统上了吗?
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
110 8