Java项目打包部署之部署jar包和war包

 更新时间:2023年12月22日 11:08:20   作者:努力,努力,在努力!  
我们在开发环境部署项目一般通过ideal将项目打包成包,然后连接linux服务器,这篇文章主要给大家介绍了关于Java项目打包部署之部署jar包和war包的相关资料,需要的朋友可以参考下

一、概述:

本文将介绍将Java项目部署到Linux服务器上的步骤。首先,你需要了解服务器的基本知识和安装Java环境的方法。然后,我们就jar包和war包两种应用部署到Linux服务器上来进行讲解,包括如何将应用程序上传到服务器,如何配置服务器,以及如何启动和停止应用程序。

二、安装Java环境

在Linux服务器上安装Java环境是第一步。Java是一种跨平台的编程语言,因此可以在多种操作系统上运行。在Linux服务器上安装Java环境非常简单,只需使用类似于apt-get或yum等命令行工具,通过命令安装即可。

以下是在CentOS上安装Java的命令:

1.查找当前可以下载的jdk的版本

yum search java|grep jdk

2.执行安装命令

yum install java-1.8.0-openjdk

确保Java已安装正确,通过以下命令检查Java版本:

java -version

三、安装Tomcat(war包需要)

将war项目部署到Linux服务器上后,需要配置服务器以运行Java应用程序。需要安装Tomcat或Jetty等Web服务器来部署Java应用程序。这些Web服务器可以从官方网站或代码库中下载。例如,要安装Tomcat,请按照以下步骤操作:

在官方Tomcat网站上下载Tomcat .

解压缩Tomcat到您的Linux服务器上,路径为/opt/tomcat/latest。

设置环境变量,以便Tomcat可以使用Java 8。将以下代码添加到您的.bashrc文件中:

export JAVA_HOME=/usr/
export CATALINA_HOME=/opt/tomcat/latest
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

这里linux配置Tomcat并没有写的太详细,如果有些觉得不太懂得, 可以搜一下详细的linux下安装Tomcat的教程

四、部署 jar 包

1. 打包 jar 包

在项目根目录下执行以下 Maven 命令打包 jar 包:

mvn clean package

在 target 目录下生成 jar 包。

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

上传Java项目到服务器是准备要执行的下一步。通常可以使用FTP等文件传输工具将Java项目上传到服务器。如果使用Windows操作系统,则可以使用Xftp客户端等工具,将Java项目上传到Linux服务器上。

如果您想从Linux本地终端上传Java项目,在Linux本地终端中使用rsync命令即可。以下是一个例:

rsync -avz -e ssh /path/to/local/java/project/ user@remote.server:/path/to/remote/java/project/

替换/path/to/local/java/project/和/path/to/remote/java/project/路径,使用自己的路径。

注意: 通常我们每次打包新上线的时候, 会把当前正在运行的包停掉但是保存着,上传时千万不要直接覆盖! 启动新的包后也不要立即删除了之前的包! 不然你会后悔的。。。

3. 运行 jar 包

运行时按一下几个步骤:

  • 进入jar包所在目录
cd /../..
  • 查询所有进程,找到项目端口号对应的PID
netstat -ntpl

假设找到的项目的PID为: 8548

  • 执行杀进程命令(8548为PID)
kill -9 8548
  • 再次执行查询命令,没有项目端口,表示杀死进程成功
netstat -ntpl
  • 执行启动jar包命令
nohup java -jar 项目包.jar >> 日志.log &
  • 日志中显示启动完毕后退出日志 执行查看进程命令
netstat -ntpl
  • 查看实施日志
    tail -f 日志.log

五、部署 war 包

1.上传war包

前面咱们已经安装了Tomcat, 并且介绍了怎么去打包怎么把本地的jar包上传到linux服务器上,实际上部署war包的方式和部署jar包的方式区别并不大,前面都是打包 然后上传war包,只不过war包需要上传到Tomcat 的 webapps 目录下,这个是固定的

打包: mvn clean package

2. 部署 war 包

  • 停掉当前正在运行的Tomcat服务器
/../tomcat/latest/bin/shutdown.sh
  • 停掉Tomcat之后查询项目端口, 看是否停止成功
netstat -ntpl
  • 删除tomcat的webapps目录下的文件及文件夹

  • 将打好包的war包上传到webapps 目录下

  • 启动 Tomcat。

/../tomcat/bin/startup.sh
  • 执行查看进程命令
netstat -ntpl
  • 查看实施日志
    tail -f 日志.log

六、jar 包和 war 包的优缺点

  • jar 包的优缺点

优点:

  • jar 包比较简单,可以在命令行上直接运行。
  • jar 包非常适合用于独立的 Java 应用程序。

缺点:

  • jar 包不支持 Web 应用程序。如果要部署 Web 应用程序,需要使用 war 包。
  • jar 包没有标准的 Web 部署方式,需要手动编写启动脚本。
  • war 包的优缺点

优点:

  • war 包是用于部署 Web 应用程序的标准方式。
  • war 包可以自动安装配置。

缺点:

  • 部署和配置 war 包相对 jar 包来说比较复杂。
  • 如果还没有安装 Java 应用程序,需要额外安装 Tomcat 等服务器。

七、总结一哈

对于 Java 项目的打包和部署操作,我们建议使用 Maven 进行管理,特别是 Maven 插件 shade 和 war。使用这些插件可以非常方便地打包和部署项目。在使用时要注意依赖库的版本兼容。

在部署 jar 包时,可以将启动命令写入 shell 脚本,方便管理。在部署 war 包时,我们建议使用自动化配置工具 Jenkins ,可以方便地部署和管理多台服务器上的应用程序。

总之,选择合适的打包脚本插件和部署工具,可以为 Java 项目的打包和部署操作带来更高效和方便的体验。

到此这篇关于Java项目打包部署之部署jar包和war包的文章就介绍到这了,更多相关部署jar包和war包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaWeb页面中防止点击Backspace网页后退情况

    JavaWeb页面中防止点击Backspace网页后退情况

    当键盘敲下后退键(Backspace)后怎么防止网页后退情况呢?今天小编通过本文给大家详细介绍下,感兴趣的朋友一起看看吧
    2016-11-11
  • SpringBoot全局异常处理方式

    SpringBoot全局异常处理方式

    本文详细介绍了Spring Boot中异常处理的多种方案,包括基于请求转发、异常处理器、过滤器等方式,并对其特点、实现方式和适用场景进行了详细介绍,作者推荐了基于请求转发和异常处理器+请求转发补充的方案,认为它们能实现统一的全局异常处理,并能自定义统一响应信息格式
    2024-12-12
  • Java中Socket用法详解

    Java中Socket用法详解

    本文详细讲解了Java中Socket的用法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • type-aliases-package的用法解读

    type-aliases-package的用法解读

    在Mybatis的mapper.xml文件中使用type-aliases-package可以简化resultType和parameterType的全类名指定,通过配置扫描指定包中的实体类,让Mybatis自动识别这些实体
    2024-11-11
  • 浅谈一下数据库连接池Druid德鲁伊

    浅谈一下数据库连接池Druid德鲁伊

    数据库连接池就是一个容器持有多个数据库连接,当程序需要操作数据库的时候直接从池中取出连接,使用完之后再还回去,和线程池一个道理,需要的朋友可以参考下
    2023-05-05
  • Java线程变量ThreadLocal源码分析

    Java线程变量ThreadLocal源码分析

    ThreadLocal用来提供线程内部的局部变量,不同的线程之间不会相互干扰,这种变量在多线程环境下访问时能保证各个线程的变量相对独立于其他线程内的变量,在线程的生命周期内起作用,可以减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度
    2022-08-08
  • 使用IDEA向Gitee提交SpringBoot项目进行远程管理

    使用IDEA向Gitee提交SpringBoot项目进行远程管理

    本文主要介绍了使用IDEA向Gitee提交SpringBoot项目进行远程管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 怎样将一个JAR包添加到Java应用程序的Boot Classpath中

    怎样将一个JAR包添加到Java应用程序的Boot Classpath中

    本文文章给大家介绍如何将一个JAR包添加到Java应用程序的Boot Classpath中,本文通过实例代码给大家介绍的非常详细,需要的的朋友参考下吧
    2023-11-11
  • 聊聊java中一些减少if else 的编码习惯的方法

    聊聊java中一些减少if else 的编码习惯的方法

    这篇文章主要介绍了聊聊java中一些减少if else 的编码习惯的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 注意Java中 new BigDecimal(double val) 的使用

    注意Java中 new BigDecimal(double val) 的使用

    这篇文章主要介绍了注意Java中 new BigDecimal(double val) 的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07

最新评论