将jar包部署到CentOS7操作系统

13 篇文章 0 订阅
5 篇文章 0 订阅

1、手工部署项目

1、在IDEA中开发SpringBoot项目并打成jar包

(通过Maven进行打包)

(在target目录下的 jar包)

2、将jar包上传到Linux服务器

# 创建目录,将项目jar包放到此目录
mkdir /usr/local/app

具体操作步骤:

[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir app
[root@localhost local]# cd app
[root@localhost app]# rz

上传jar包

如果你使用rz上传卡住不动0%,可以退出来重新传。

检验上传是否成功:

[root@localhost app]# ll
总用量 61692
-r--------. 1 root root 63172330 5月   6 22:47 reggie_take_out-1.0-SNAPSHOT.jar

3、启动SpringBoot程序

通过  java -jar <.jar>

注意使用java -jar 运行请看以往篇章:

在CentOS7系统中安装JAVA JDK1.8_centos7 java1.8-CSDN博客

[root@localhost app]# java -jar reggie_take_out-1.0-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.5)

2024-05-06 23:01:45.375  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : Starting ReggieApplication v1.0-SNAPSHOT using Java 1.8.0_401 on localhost.localdomain with PID 84728 (/usr/local/app/reggie_take_out-1.0-SNAPSHOT.jar started by root in /usr/local/app)
2024-05-06 23:01:45.388  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : No active profile set, falling back to default profiles: default
2024-05-06 23:01:50.835  INFO 84728 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2024-05-06 23:01:50.920  INFO 84728 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-05-06 23:01:50.920  INFO 84728 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.45]
2024-05-06 23:01:51.113  INFO 84728 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-05-06 23:01:51.114  INFO 84728 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5563 ms
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
2024-05-06 23:01:51.601  INFO 84728 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2024-05-06 23:01:52.751  INFO 84728 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
Registered plugin: 'com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor@6e509ffa'
Property 'mapperLocations' was not specified.
 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.4.2 
2024-05-06 23:01:55.465  INFO 84728 --- [           main] com.itheima.reggie.config.WebMvcConfig   : 扩展消息转换器...
2024-05-06 23:01:55.481  INFO 84728 --- [           main] com.itheima.reggie.config.WebMvcConfig   : 开始进行静态资源映射...
2024-05-06 23:01:56.504  INFO 84728 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2024-05-06 23:01:56.525  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : Started ReggieApplication in 12.714 seconds (JVM running for 15.99)
2024-05-06 23:01:56.532  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : 项目启动成功...

项目启动成功,端口号8080

4、检查防火墙,确保8080端口对外开放,访问SpringBoot项目

关于防火墙的配置请看以往篇章:

防火墙操作命令: Linux 防火墙 操作命令【实用】-CSDN博客

由于我们的项目进程窗口正在运行中,我们需要另建一个标签:

 

输入 firewall-cmd --zone=public --add-port=8080/tcp --permanent 查看当前开放端口

# 查看当前开放端口
[root@localhost ~]# firewall-cmd --zone=public --list-ports
8080/tcp 3306/tcp

如果你没有查询到8080端口,那么请你按照我提供的文章进行操作。

在浏览器打开 http://192.168.23.128:8080/ 进行访问项目

可以在shell终端命令中看到拦截信息

2024-05-06 23:14:16.322  INFO 84728 --- [nio-8080-exec-6] c.i.reggie.filter.LoginCheckFilter       : 用户未登录

如果我们断开标签,就无法访问站点了

 

为了解决这个控制台霸屏运行方式,请参考以下:

5、改为后台运行SpringBoot程序,并将日志输出到日志文件

  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

# 语法格式
nohup Command [ Arg … ] [ & ]

# 参数说明
Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍旧执行。


# 实例
# 以下命令在后台执行 root 目录下的 runoob.sh 脚本:
nohup /root/runoob.sh &

# 在终端如果看到以下输出说明运行成功:
appending output to nohup.out

# 这时我们打开 root 目录 可以看到生成了 nohup.out 文件。

# 如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:
ps -aux | grep "runoob.sh" 

# 参数说明:
a : 显示所有程序
u : 以用户为主的格式来显示
x : 显示所有程序,不区分终端机

# 另外也可以使用 ps -def | grep "runoob.sh" 命令来查找。

# 找到 PID 后,就可以使用 kill PID 来删除。
kill -9  进程号PID

# 以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:
nohup /root/runoob.sh > runoob.log 2>&1 &

# 2>&1 解释:
# 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

 

了解了nohup后,来执行 

# 后台运行java -jar命令,并将日志输出到reggie_logs文件中
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie.log &

(执行结果)

打开刚刚的浏览器地址 http://192.168.23.128:8080/ 访问:

可以通过以下命令查看日志

# 查看运行日志
more reggie.log 

这时候再关闭或断开FinalShell标签,依然可以访问。

6、停止SpringBoot程序

请查看这篇文章,关于进程查杀:验证Tomcat进程是否启动成功 ps -ef | grep tomcat-CSDN博客

[root@localhost ~]# ps -ef | grep java
root      17918      1  2 23:42 ?        00:00:15 java -jar reggie_take_out-1.0-SNAPSHOT.jar
root      32688  32475  0 23:52 pts/0    00:00:00 grep --color=auto java
[root@localhost ~]# 

从查询结果可以看到进程id是17918

[root@localhost ~]# kill -9 17918
[root@localhost ~]# ps -ef | grep java
root      34303  32475  0 23:54 pts/0    00:00:00 grep --color=auto java
[root@localhost ~]# 

 

这时候再去访问刚刚的地址已经失效了:

如果你是瑞吉外卖请访问:http://192.168.23.128:8080/backend/page/login/login.html

说明进程已经关闭,进程服务无法进行访问了。 

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当安装 CentOS 7 操作系统部署 Java 应用时,以下是一些实践步骤: 1. 下载 CentOS 7 镜像:访问 CentOS 官方网站或镜像站点,下载合适的 CentOS 7 镜像文件。 2. 创建虚拟机:使用虚拟化软件(如 VirtualBox、VMware)创建一个新的虚拟机,并为其分配合适的硬件资源,如内存、CPU和磁盘空间。 3. 安装 CentOS 7:将下载的 CentOS 7 镜像文件挂载到虚拟机,并启动虚拟机。按照屏幕上的指示选择适当的安装选项,例如选择语言、分区方案和网络配置等。 4. 更新系统:安装完成后,首先使用以下命令更新系统软件包: ``` sudo yum update ``` 5. 安装 Java 开发环境:CentOS 7 默认安装了 OpenJDK,可以使用以下命令安装 OpenJDK: ``` sudo yum install java-1.8.0-openjdk-devel ``` 6. 配置环境变量:编辑 `/etc/profile` 文件,添加以下行以配置 Java 环境变量: ``` export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin ``` 然后运行以下命令使配置生效: ``` source /etc/profile ``` 7. 部署 Java 应用:将 Java 应用程序的可执行文件或 WAR 文件上传到 CentOS 7 的目录中,例如 `/opt/app`。 8. 启动 Java 应用:使用以下命令启动 Java 应用程序: ``` java -jar /opt/app/myapp.jar ``` 这里的 `/opt/app/myapp.jar` 是你应用程序的路径和文件名,根据实际情况进行替换。 9. 配置防火墙:如果 CentOS 7 上启用了防火墙(firewalld),需要开放 Java 应用所用的端口。例如,如果应用程序使用 8080 端口,请运行以下命令: ``` sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp sudo firewall-cmd --reload ``` 10. 测试应用:在浏览器中访问服务器的 IP 地址或域名,并通过指定的端口号访问 Java 应用程序。例如,`http://server_ip:8080`。 以上是在 CentOS 7 上安装和部署 Java 应用的基本实践过程。根据具体需求,可能还需要进一步配置和调优。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值