Linux 部署Java项目-jar包和war包(五)

LinuxJar的简单自动化部署(常用脚本记录持续更新) 本文记录一些日常使用的简单脚本 阅读详情

一、前景(jar包和war包区别)

部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别:

spring boot既可以打成war发布,也可以打成jar包发布。说一下区别:

jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。

war包:传统的应用交付方式,需要安装tomcat,然后放到waeapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略。相对打成jar包来说没那么快速方便。

个人比较偏向打成jar包的方式发布应用,因为spring boot已经内置了tomcat,无需额外配置。其实可以搜索下spring
boot的特点,有个非常重要的特性就是spring.

boot把市面优秀的开源技术,都集合起来,方便快速应用。技术没有百分百这种好,也没有百分百那种不好,存在即合理,最主要还是看个人习惯和业务场景需求了。

一、部署jar包程序

1. 项目打成jar包

①方式一:使用idea工具打包项目

在这里插入图片描述

②方式二:通过cmd命令的方式打包项目

在Windows系统下,通过按下Win + R键打开终端运行窗口;
通过 cmd cd 到你的java项目文件夹下; ( G: 切换盘符,注意:不需要区分大小写,但是“:”冒号需要加上)
在这里插入图片描述
PS:上面的Java项目文件夹,指的是你项目的根路径
在这里插入图片描述

最后执行命令

mvn clean package -DskipTests

( PS: 意思是:先执行mvn clean,删除之前编译的文件,再执行mvn package,进行工程打包操作,在打包的时候跳过test文件夹和文件)

在这里插入图片描述
在这里插入图片描述

然后就会在你的target文件夹下有一个jar包

在这里插入图片描述

2. 项目命令启动

通过FinalShell、XShell或者命令的形式把jar包上传到Linux服务器中。(springboot的jar包,可以不必放在webapp目录下。)

① 查看之前启动的程序,关闭之

1.查看项目运行的进程的id
ps -ef|grep java

在这里插入图片描述
以上说明没有包含 .jar包运行的Java文件

2.kill 掉该进程即可 ;  -9表示无条件结束
kill -9 xxx

② 启动程序

1.nohup启动方式('推荐,也是本次使用的命令')。nohup java -jar XXX.jar >jarLog.txt &
nohup java -jar person-admin.jar >jarLog.txt &

// 这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。

nohub: 不挂断的运行命令
&:后台运行
>: 日志重定向输出到某个文件

PS: java -jar启动方式。
java -jar *.jar
此中方式只会运行在当前窗口,当关闭窗口或断开连接,jar程序就会结束。故不推荐使用。只适合本地开发和测试时使用

③ 验证是否部署成功

本地电脑(外网访问) : 输入虚拟机Linux环境的IP地址加项目端口xxxx访问

在这里插入图片描述

PS: 注意:如果是正常的部署项目端口号且为8080;那么就没有下述的问题,可以跳过不用管。

④ 部署时的问题 (多个项目不同端口的防火墙问题/解决方法)

注意: 如果Linux虚拟机内网中能够正常访问,而外部本地电脑不能够访问,那么很可能是Linux环境防火墙没有关闭。
或者说端口号没开启。

在这里插入图片描述

解决方式一:直接关闭防火墙(不推荐)

(此举只适用于自己本身的开发或者测试环境、生产环境不建议这么做)

输入以下命令关闭防火墙:

 
查看防火墙状态
systemctl status firewalld.service
 
关闭防火墙
systemctl stop firewalld.service
 

延伸的相关命令:

开启防火墙
systemctl start firewalld.service
 
关闭防火墙开机启动
systemctl disable firewalld
检查防火墙服务是否已启用 (/禁止还是启用状态)
systemctl is-enabled firewalld
打开开机自启
systemctl enable firewalld
 
查看防火墙已开放端口列表
firewall-cmd --list-all

解决方式二:增加对应的访问端口 (推荐)
1. 查看防火墙已开发端口

通过命令查看防火墙已开放端口列表有哪些:

firewall-cmd --list-all

在这里插入图片描述

2. 增加防火墙开放端口
方式一:使用命令添加 (推荐
firewall-cmd --zone=public --add-port=8888/tcp --permanent   

PS:(–permanent永久生效,没有此参数重启后失效)

方式二:使用编辑/etc/firewalld/zones/public.xml文件的方式增加
sudoedit /etc/firewalld/zones/public.xml

在这里插入图片描述
输入命令生效:

firewall-cmd --reload

查看是否生效

firewall-cmd --list-all

在这里插入图片描述

3. 验证访问成功

在这里插入图片描述

jar包 部署 END 完结



二、部署war包程序

1. 将war包放在webapps目录下

2. 重启Tomcat

(1)进入Tomcat的bin目录

cd /usr/local/tomcat/bin

(2)关闭Tomcat

./shutdown.sh

(3)查看Tomcat是否已关闭

ps -ef|grep java

如果显示如下相似信息,说明Tomcat还没有关闭

root      7010     1  0 Apr19 ?        00:30:13 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

使用kill命令直接杀死相应进程

kill -9 7010

(4)启动Tomcat

./startup.sh 

war包 部署 END 完结



上一篇:
Linux 导入MySQL数据库(四)
下一篇:


end
JAVA开发环境中部署WAR 购买阿里云 本来我是没做过运维方面的工作,挺感兴趣的,开开心心地去注册了一个账户并购买了一年服务器的使用。 打开控制台 如图所示,因为项目很小,只是做一个Demo出来看一个就好了,就决定买1核2G,操作系统是CentOS 7.3。事实证明这个性能还可以,毕竟只是公司内部的一个展示 。一千一百多觉得还蛮贵的(可能是我穷)。 配置云环境 云服务也买好了,那现在就配置一下环境吧,我用 阅读详情

相关推荐

matianl:SAP 最详细的权限管理解析

上文所说的系统自带权限对象与权限字段仅能满足有限的需要,其权限审核的逻辑也是系统硬编码了的,我们能做的只是是否启用某项权限对象的检查(使用SU22)。如果需要自定义,通过SU20、SU21定义即可。

matinal 當冬夜漸暖 。公众号:matinal 2118

【Python系列】Python模块filecmp 文件比较

### Date: 2017/4/11 ### Author: SoaringLee filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性)。如果文件内容匹配,函数返回True,否则返回False。...

CSDN明星博主,认证博客专家,视频、Matlab领域优质创作者。 5379

用 n8n 提取静态网页内容:从 HTTP Request 到 HTML 节点全解析

本文介绍了如何使用n8n的HTTP RequestHTML节点组合提取静态网页内容。首先通过HTTP Request节点获取网页HTML源码,然后使用HTML节点解析并提取所需数据。关键点括:1)HTTP Request节点设置URLGET方法;2)HTML节点配置Source Data为JSON并指定data字段;3)重点掌握Extraction Values参数,特别是CSS选择器(使用.#定位元素)、Key命名、Return Value类型选择等。文章通过实例演示了标题正文的提取方法,并提供

muyouking 4445

jar部署的三种方法

jar部署的三种方法 一、直接将jar放入一个路径下在命令行中用指令部署 1、缺点:每一个cmd窗口,相当于一个临时session会话,当cmd窗口关闭之后,启动的java程序就停止了 2、部署流程: 二、利用脚本启动jar 1、缺点:电脑重新启动要点击bat文件运行项目 2、部署流程: 三、将jar配置为windows服务实现永久启动 1、缺点:每次修改一个地方的代码,都得停止服务,更新jar,然后再启动服务 2、部署流程: ...

weixin_44764814的博客 2万+

Linux 部署jar

Linux 部署jar

兵强码壮 9118

项目部署部署jarwar

对于 Java 项目的打部署操作,我们建议使用 Maven 进行管理,特别是 Maven 插件 shade war。使用这些插件可以非常方便地打部署项目。在使用时要注意依赖库的版本兼容。在部署 jar 时,可以将启动命令写入 shell 脚本,方便管理。在部署 war 时,我们建议使用自动化配置工具 Jenkins ,可以方便地部署管理多台服务器上的应用程序。总之,选择合适的打脚本插件部署工具,可以为 Java 项目的打部署操作带来更高效方便的体验。

weixin_45300957的博客 7058

Linux环境Tomcat下部署jarwar程序

一、部署war程序 1. 查看之前启动的程序,关闭之 ps -ef|grep java kill -9 xxx 2. 启动程序 nohup java -jar XXX.jar >top.out & 二、部署war程序 1. 将war放在webapps目录下 2. 重启Tomcat (1)进入Tomcat的bin目录 cd /usr/local/tomcat/bin (2)...

WWF_HelloWorld 1万+

Linux部署springboot项目 warjar (超详细教程)

最近需要在Linux部署javaweb 项目javaweb 项目可以自己打war,或者jar 部署,下面说一下2种部署方式。 目录部署war 一:将springboot项目war排除内置tomcat添加servlet-api的依赖配置打类型在启动类继承SpringBootServletInitializer,重载configure方法war二:打开宝塔面板,部署war war上传到 webapp目录下添加网站开启 tomcat 服务部署jar 部署war 一:

言小溪 的博客 4584

Linux下运行warjar

Linux下要运行java项目时,需要先将项目war或者jar。 打war需要将war部署到tomcat服务器上才能运行。 一、把war放到tomcat/webapps下 二、启动 进入tomca/bin下 ./startup.sh 停止 ./shutdown.sh (要改端口号进去tomcat/conf/server.xml下修改,修改前停服务修改后重新启动生效)...

weixin_42813606的博客 1万+

Maven项目jarwar的区别_warjar部署区别

如果一个Web应用程序的目录文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打成Web 归档(WAR)文件,这个过程Java类文件打JAR文件的过程类似。与 ZIP 文件不同的是,JAR 文件不仅用于压缩发布,而且还用于部署封装库、组件插件程序,并可被像编译器 JVM 这样的工具直接使用。一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。

2401_83947105的博客 990

Linux中安装JDK、Tomcat以及在Linux部署warjar

1. 在Linux系统中如何安装JDK 在Linux中安装JDK有两种方式:一种是 rpm 方式安装,一种是 tar.gz 方式安装,两种方式选一种就可以。 下载JDK https://www.oracle.com/technetwork/java/javase/downloads/index.html https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 通过CRT|WinSCP工具将jdk上传到li

qq_50313418的博客 3504

linux运行jar、查看jar进程、停止jar

要运行java项目需要先将项目war或者jar,打war需要将war部署到tomcat服务器上才能运行。而打jar可以直接使用java命令执行。在linux系统中运行jar主要有以下四种方式。 一、java -jar XXX.jar 这是最基本的jar执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。 二、java -jar XXX.jar &a...

过期罐头 2万+

linux执行jarwar

一、发布java可执行JAR方法 (1)首先在Eclipse上右击工程项目,如下图所示: (2)然后在弹出的窗口中选择:Java-->Runnable JAR file,然后点击:Next,如下图所示: (3)然后选择需要打的程序保存的地方,然后点击:Finish,如下图所示: 二、打后的jarLinux上运行 (1)部署Java运行环境 ...

insis_mo的博客 3251

云服务器Linux部署warjar,并在nginx配置域名

本文是为了将一个开发好的Java项目使用Tomcat部署至服务器上,并提供所有准备软件安装教程,并在Nginx上实现代理,解决一些配置问题

STARSpace8888的博客 2055

WarJava Web应用程序打部署

Java Web开发中,war(Web Archive)是一种常见的文件格式,用于打部署Java Web应用程序。本篇博客将介绍war的概念、作用以及使用方法,并根据相关资料来详细回答相关问题。

m0_72410588的博客 5002

还不会在Linux上面如何部署jar?看这一篇就够了

还不会在Linux上面如何部署jar?看这一篇就够了

weixin_43267639的博客 6363

Linux 运行jar的几种方式

​ nohup java -jar app.jar 2>&1 >log & 简写成:nohup java -jar app.jar &>log &​ 2>&1 符号>&是一个整体代表将标准错误2重定向到标准输出1,如果是2>1的话,代表将标准错误输出到文件1,而不是重定向到标准输出流。​ 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)可以简写成 &>log 或 >&log。​ 执行2>&1后, 2----->1 (2指向1,而1指向屏幕,因此2也指向了屏幕)

小道士写程序 6584

震惊!如何在linux部署项目部署/运行jar 超详细保姆级教程!

注意:此处可能会出现 nohup: ignoring input and appending output to ‘nohup.out’例如:nohup java -jar java_chatroom-0.0.1-SNAPSHOT.jar &蓝框内 2500 为进程ID (kill 命令针对的就是进程ID,不是端口号,别弄混)按空格就好,他的意思是建立一个 ohup.out 文件来存储咱的日志信息。cat 输出日志的文件名 例如: cat nohup.out。查看当前文件夹下的文件 ls -l。

dream_ready的博客 7889

Jar部署的三种方式!

7、启动服务,在“任务管理器”——“服务”中启动服务,服务名称:XXXXXX,如下,在浏览器输入项目访问地址即可。注:要想结束刚刚启动的jar,新建一个stop.bat,文件内容如下,同理右键该文件以管理员身份运行即可。3、将WinSW.NET4.exe重命名为XXXXXX.exe(注:jar名是XXXXX.jar)3、把文件名改为start.bat,右键start.bat文件“管理员身份运行”二、缺点:每次修改一个地方的代码,都得停止服务,需更新jar,然后再启动服务。

m0_58989398的博客 2689

Java项目快速部署到云服务器上【使用Docker容器化技术】

恕我直言,网上大多数的部署教程大多都是垃圾。是有精华,但合糟粕。

m0_62379203的博客 4451

基于Arc Engine二次开发的专题图自动生成系统C#源码+项目说明.zip

基于Arc Engine二次开发的专题图自动生成系统完成语言:C#需要软件:Microsoft Visual Studio; ArcGIS 10.2; ArcGIS Engine 10.2主要功能: 多张专题图自动出图;添加地震烈度信息;添加其他相关地震灾害信息运行方式: 下载后直接双击WinForm.sln即可运行,所需数据未内置系统使用截图:

上一篇: Linux 导入MySQL数据库(四)
下一篇: windows10家庭版禁用Device/Credential Guard解决方案
逸佳6
博客等级 码龄7年 1万+粉丝 137原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值