不重新打包部署 - 修改项目配置文件并快速应用到Tomcat中(即修改Tomcat war包中某个jar包中的配置文件)...

问题描述:如果我们有一个Web project: A, 如果该web project A中会引用我们的另一个jar project: B。即

在A.war中会有一个B.jar。B.jar中有一些系统相关的配置文件,如数据库的配置。

 

如果我们需要马上修改该应用的数据库配置,常规的做法在IDE中是去修改B中的内容,然后重新build好后将A.war上传到我们的服务器上并重启Tomcat。这样会比较慢,除了打包慢,上传war包到服务器本身也慢。

 

有一个快速的解决方案是:

在服务器上将Tomcat/WEB-INF/lib目录下的B.jar解压开,使用命令:jar xvf mmseg4j-core-1.9.1.jar

(需要注意的是,jar命令无法将.jar解压到指定目录,因为-C参数只在创建或更新包的时候,可用

windows自带的unzip命令:unzip mmseg4j-core-1.9.1.jar -d ./mmseg4j-core-1.9.1, 这样既可以将该jar包解压到当前目录下的mmseg4j-core-1.9.1目录下。)

      然后删除或者备份该B.jar为另一个名字(B.jar.bak),然后在解压的目录中修改相关配置文件。然后使用java命令重新将解压后的文件打包成jar包。

jar cvf B.jar -C B .

 该命令表示为将当前B目录下的所有内容打包成B.jar.然后删掉解压后的文件并重启tomcat即可。

 

 

附录:如果想了解更多的jar命令,可查看如下内容:

jar命令的参数详解:

C:\>jar cf lm.jar
'c' 标志要求指定清单或输入文件!
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
    -c  创建新的归档文件
    -t  列出归档目录
    -x  解压缩已归档的指定(或所有)文件
    -u  更新现有的归档文件
    -v  在标准输出中生成详细输出
    -f 指定 JAR 文件名,通常这个参数是必须的
    -m  包含指定清单文件中的清单信息
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储;不使用任何 ZIP 压缩
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
       jar cvfm classes.jar mymanifest -C foo/ .

 

 

实例1.
C:\>jar cf lm.jar Lm.class Lm.java

结果:在c盘下创建了Executable Jar File类型的lm.jar包。

 

实例2.添加v参数显示打包详细过程,

C:\jar>jar cvf lm.jar Lm.class
标明清单(manifest)
增加:Lm.class(读入= 410) (写出= 283)(压缩了 30%)

 

其中c参数表示创建jar包,f参数是指定的jar包文件名。在使用jar命令的时候,要指定必须的参数,告诉他你要做什么操作。这些参数包括

 

 -c  创建新的归档文件
 -t  列出归档目录
 -x  解压缩已归档的指定(或所有)文件
 -u  更新现有的归档文件

实例3.运行刚生成的jar包:

 C:\>java -jar lm.jar
Failed to load Main-Class manifest attribute from
lm.jar

根据英文错误提示,好像读取lm.jar包的manifest属性失败。

 

实例4.创建不包含META-INF/MANIFEST.MF文件的jar包

C:\jar>jar cvfM lm1.jar Lm.class
增加:Lm.class(读入= 410) (写出= 283)(压缩了 30%) 

 

实例5.显示jar包中的文件

C:\jar>jar tf lm.jar
META-INF/
META-INF/MANIFEST.MF
Lm.class

 

实例6.由于创建jar包的时候用了M参数所以就没有META-INF目录和META-INF/MANIFEST.MF文件

 

C:\jar>jar tf lm1.jar

Lm.class

 

实例7.显示jar包的文件和文件详细信息


C:\jar>jar tvf lm.jar
     0 Mon Sep 26 23:09:34 CST 2011 META-INF/
    75 Mon Sep 26 23:09:34 CST 2011 META-INF/MANIFEST.MF
   410 Mon Sep 26 22:09:00 CST 2011 Lm.class

 

这些详细信息包括读入的字节,jar包中读入的时间,目录或文件名 

 

实例8.解压jar包到当前目录中


C:\jar>jar xf lm.jar

不显示任何信息,但是解压成功 

 

SpringBoot项目打jar包war包部署到Tomcat服务器 项目打包部署到Tomcat服务器项目打jar包项目打war包服务器部署jar包服务器部署war包 项目打jar包 项目如果不指定打包方式,就默认是jar包的形式。 <package>jar</package> 使用maven指令先clean一下,再install打包即可,在target包下找到打的jar包。 项目打war包 <packaging>war</packaging> 同样也是使用maven命令先clean一下,在点击install,在t 阅读详情

相关推荐

PostgreSQL数据库全攻略:从入门到精通

本文是一份PostgreSQL数据库综合指南,涵盖安装配置、基础操作和高级管理。主要内容包括:1) PostgreSQL简介与各平台安装方法;2) 数据库基本操作,如创建数据库/表、CRUD操作、用户权限管理;3) 高级功能包括索引优化、事务控制、视图、存储过程、触发器和扩展模块;4) 数据库管理维护,涉及配置调优、备份恢复、性能监控和日常维护;5) 安全设置与高可用方案。指南提供了从入门到进阶的实用知识,强调结合官方文档进行深入学习,帮助用户高效使用这一功能强大的开源关系型数据库系统。

索大神的博客 1969

windows修改替换war包配置文件

windows修改替换war包配置文件

杨咩咩 3991

NXP(imx8qxp)系列DDR校准以及android镜像烧录

文章目录一、 不得不吐槽以下nxp的这个代码镜像烧写的过程,做得太开源了,导致镜像根本烧录不进去,实属令人头痛。 一、

永不秃头的程序员的博客 5991

springboot项目打成war包部署,tomcat修改配置

1.tomcat安装 ①下载apache-tomcat-8.5.37-windows-x64.zip,配置环境变量JAVA_HOME=tomcat安装路径/bin,再添加class_path =%TOMCAT_HOME%\BIN; ②启动cmd.exe, 进入tomcat 安装文件下的 bin目录下,例如我这里的安装位置:D:\Program Files\tomcat8.5 ③进入命令行,输入 ...

wonderful Code 3551

群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了

本站陆陆续续的转载、原创帖子也有十几二十篇了,从不同的角度对群晖NAS的各种骚操作都有深入的讲解,虽然很多文章都不是讲的很深入,但是针对小白入门已经是足够了,希望对小白来说是一个入门,群晖NAS的大佬们勿喷,哪里写的不对的,请随时留言西安SEO优化站长一定在第一时间纠正修改。

西安SEO优化网站资源 8万+

【规则引擎连载3】 WebSphere ILOG JRules 开发——新建一个规则项目

规则项目依赖于bom,bom来自于一个Java项目,所以在建规则项目之前,需要先建立一个Java项目,也就是建模。 说明:原则上是一个规则项目,一个bom。如果规则项目很多,并且每个规则项目的bom都是一样的,那么可以将bom提取出来,单独作为一个项目,这样减少不必要的重复操作,减少维护成本,降低出错几率。这里逐步讲解两种方法来创建规则项目,推荐第二种。 本文主要建立两种规则项目与bom之间的关系,编写相关的规则内容,如操作规则、规则流、决策表等,在后续文章中详细讲解 。

manman的分享 2330

java+maven工程 实现 自动对war包进行复制并修改和替换每个的配置文件

在工作中碰到一个比较苦恼的事情,(这里以7条线为例子)同一个war包 需要部署7条生产线,但是每个生产线的编号以及ip都不同,导致我们手动的每个包去替换配置文件和配 置ip的js文件 并且每次发布,还需要手动去修改配置文件里面的版本号,这样十分的繁琐。因此该小程序实现对同一个war包进行自动替换里面的配置和js文件加入相关的版本号, 生...

weixin_30409849的博客 526

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1492

war包中的内容是不能随意修改的

War包中的内容是经过编译和打包的,因此无法直接修改。在运行时,您可以通过修改配置文件或使用外部资源来对应用程序进行一些配置更改,但无法直接修改已编译的Java类文件。如果您需要对Java类文件进行修改,您需要获取源代码,进行修改和编译,并将修改后的类文件重新打包为War包。只有在重新编译和打包过程中进行的修改才会在部署后生效。总结起来,War包中的内容是经过编译和打包的,因此不能随意修改。要对其中的代码进行更改,您需要获取源代码并重新编译为新的War包。

weixin_44943389的博客 1945

部署资源管理系统chemx

资源管理系统的部署教程

weixin_40784215的博客 822

YOLOv12改进策略【Neck】| 使用CARAFE轻量级通用上采样算子

CARAFE内容感知的特征重新组合。

Limiiiing的博客 664

SpringBoot打成war包,部署到Tomcat服务器

    SpringBoot默认达成jar包,使用SpringBoot构想web应用,默认使用内置的Tomcat。但考虑到项目需要集群部署或者进行优化时,就需要打成war包部署到外部的Tomcat服务器中。一、修改pom.xml文件将默认的jar方式改为war:&lt;groupId&gt;com.example&lt;/groupId&gt; &lt;artifactId&gt;applicat...

qq_33512843的博客 12万+

基于YOLOv26的护栏损坏检测系统原理讲解

本文介绍了一种基于YOLOv26深度学习的护栏损坏检测系统。该系统通过车载摄像头或固定监控采集道路护栏图像,利用改进的YOLOv26算法实现高效准确的损坏检测。系统采用分层架构设计,包含数据采集、检测处理、分析评估和应用服务四个层次,能够自动识别变形、断裂、缺失等五种常见损坏类型,并评估损坏严重程度。相比传统人工检测方法,该系统大幅提高了检测效率和准确性,降低了人工成本和安全风险。关键技术包括多尺度特征融合、注意力机制和自适应非极大值抑制等创新设计,使系统在复杂道路环境下仍能保持稳定的检测性能。

一键难忘的博客 328

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

本文章是讲述Linux部署Java项目。部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别: spring boot既可以打成war发布,也可以打成jar包发布。

y2020520的博客 9960

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IDEA打包JavaWeb的War包并部署到Tomcat

文章目录前言基础认识JAR包War包JavaWeb项目创建WAR部署手动部署WAR的打包Tomcat部署总结 前言 JavaWeb 工程,都是打成 War 包后进行发布的,打成 War 包的好处是不会缺少目录,并且只管理好一个发布文件就好。将 War 包放在 Tomcat 容器的 webapps 目录下,启动 Tomcat 服务后,即可运行该项目,Tomcat 服务器能够自动识别该 War 包并自动解压出一个同名的文件夹。 本文来记录学习下如何在 IDEA 中创建一个简单的 JavaWeb 示例项目,并打包

道阻且长,行则将至 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring Boot项目打包部署,打Jar包和War包有什么区别?

Jar包适合于独立运行的Spring Boot应用,而War包适合于与其他 JavaEE 应用共同运行的场景,选择哪种打包方式,可以根据具体的应用需求和部署环境来决定。

Designer 小郑的技术博客 3354

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IDEA中打jar包和war包以及jar包和war包的区别及理解

IDEA中打jar包和war包以及jar包和war包的区别及理解

辣椒炒肉~的博客 5373

springboot项目打包jar包并部署

前言 需要在pom.xml文件中添加插件 一、maven命令打包 1、命令窗口cd到根目录(和pom.xml、target同级),也可在idea工具中选择Terminal 2、执行打包命令mvn clean package(跳过测试类命令mvn clean package -Dmaven.test.skip=true) 二、idea插件打包 1、在IDEA右侧Maven Pr...

幸运小男神的博客 5535

SpringBoot项目部署到Tomcat中的两种方式(jar和war)

1、jar包的形式 ① 第一步 查看pom.xml中的<packaging>打包类型<packaging>,确定下是什么类型,若这个属性不存在,手动将此包引入进来并声明其打包方式。 ② springboot内部集成了tomcat,将内置tomcat排除掉,不然打包依旧出错(maven类型错误,也就是jar包错误) <dependency> <groupId>org.springframework.boot&lt...

qq_34302802的博客 1万+

Java 部署:Spring Boot 应用打包成 War 包(部署 Tomcat)

本文详细介绍了如何将Spring Boot应用从JAR包转换为WAR包部署到外部Tomcat服务器的完整流程。文章首先分析了WAR部署在企业环境中的必要性,包括合规要求、资源共享和遗留系统集成等场景。随后通过具体示例,逐步演示了关键改造步骤:修改打包方式为WAR、排除内嵌Tomcat依赖、调整启动类继承SpringBootServletInitializer、配置构建文件,并提供了本地测试和生产部署的实践指南。全文以Maven项目为例,兼顾Gradle配置说明,帮助开发者快速掌握Spring Boot应用的

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

SpringBoot引入外部jar包,项目打包成war包发布

lwar 包:传统的应用交付方式,需要安装 tomcat,然后放到 webapps 目录下运行 war 包,可以灵活选择tomcat 版本,可以直接修改 tomcat 的配置,有自己的 tomcat 日志输出,可以灵活配置安全策略。总的来说,打包成war包的一个好处,就是把多个项目部署到同一个tomcat下,对tomcat统一配合优化和管理,至于要不要打包成war包看自己的需求,非不要下当然是使用jar的方式了,在Spring Boot2.3的版本还支持了分层jar了,可以自行了解下。

qq_62086292的博客 1645

SpringBoot打war包Tomcat部署——打jar包命令运行

步骤: 1.2 核心配置文件 1.3 创建控制层 1.4 创建页面 1.5 程序入口类继承SpringBootServletInitializer类 覆盖configure方法 1.6 本地Tomcat启动 SpringBoot项目打包默认就是打jar包, jar包端口号和上下文根就是SpringBoot核心配置文件中设置的值 和打war包不同这里需要指定打包版本 2.2 核心配置文件 2.3 本地运行 命令: . . . . . . . .在dos窗口中输入指令:,其中8080是指你

qq_45896330的博客 8930

idea打包springboot项目为war包和jar包

参考原文:https://blog.csdn.net/yalishadaa/article/details/70037846 把spring-boot项目按照平常的web项目一样发布到tomcat容器下 1.修改pom.xml中的配置 把spring-boot项目按照平常的web项目一样发布到tomcat容器下 2. 移除嵌入式tomcat插件 在pom.xml里找到spring-boo...

qq_42031483的博客 4585

springboot项目的打包发布部署,jar和war的区别

1.Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,可以将Spring Boot项目打包成JAR包来独立运行,也可以打包成WAR包部署到Tomcat容器中运行,如果涉及大规模的部署,Jenkins成为最佳选择之一。

道友 3246

java项目打jar包和war包部署

jar包在服务器上部署 正常的部署命令 java -jar app.jar 这种方式,只要控制台关闭,服务就不能访问了。使用后台运行的方式来启动: nohup java -jar app.jar & 在启动的 时候还可以自定义去选择配置文件 java -jar app.jar --spring.profiles.active=dev 还可以在启动的时候设置 jvm 参数 java -Xms10m -Xmx80m -jar app.jar & war包在Tomca

weixin_45121502的博客 1485
上一篇: maven中打包源代码
下一篇: Eclipse Xml编译错误Referenced file contains errors - spring-beans-4.0.xsd
iteye_4921
博客等级 码龄8年 25粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值