方法一:直接更新文件

直接修改部署后的文件。比如用 maven 打包成 WAR 文件,部署(复制)到 Tomcat/webapps 目录后,Tomcat 会立即将 WAR 文件解压成目录结构。此时,只需进入目录修改对应的文件就可以了。

修改 Tomcat 解压出来的文件,可能需要 root 权限。

参考资料:

Servlets Demystified in Chapter 1 of Head First Servlet & JSP

方法二:更新线上运行中 WAR, EAR 包里的个别文件

大型 web 应用的编译是很耗时间的,将编译后的包部署到 web server 上面可能也要很久。

有时候只是修改了一个静态文件,如 html, css, jpg,这些修改是无需编译的。如果将整个 web 项目重新编译、部署使得变动生效,工作效率会很低。

如何将改动的静态文件直接更新(替换)到线上 WAR/EAR 呢?

可以使用命令

jar uf jar-file input-file(s)

解释:

u - 表示你想要更新一个已存在的 JAR 文件

f - 表示需要更新的文件在命令行中指定

jar-file - 需要更新的已存在的 JAR 包

input-files(s) - 一个或多个需要更新(新增)的文件名,多个文件之间用空格隔开

JAR 包中和 input-file(s) 同名的文件会被覆盖点。

例子:

已知 TicTacToe.jar 内容如下:

audio/yahoo2.au
example1.html
images/
images/cross.gif
images/not.gif

新增文件 new.gif

jar uf TicTacToe.jar images/new.gif

更新后 TicTacToe.jar 内容如下:

audio/yahoo2.au
example1.html
images/
images/cross.gif
images/not.gif
images/new.gif

参考资料 :

Updating a JAR File, Oracle

局部更新 java web 的文件的更多相关文章

  1. 更新java对xml文件的操作

    //更新java在xml文件中操作的内容 public static void upda(Document doc) throws Exception{ //创建一个TransformerFactor ...

  2. java+web+大文件上传下载

    文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...

  3. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  4. 初学Java Web(7)——文件的上传和下载

    文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...

  5. java web 读取文件,文件路劲不对的问题

    都知道,一般java项目,编译后的文件是在classes文件夹下面: 而java web项目,则是在WEB-INF/classes文件夹下面.new File(fileName)须先获取tomcat中 ...

  6. java web 各个文件夹命名原因

    今天突然被同学问然后就发现,自己有很多的疑问: (1) 为什么servlet的配置文件,命名为 web.xml , 内部是如何读取的,原因就是他内度的工作原理 (2) webINF Src 文件为什么 ...

  7. 替换Java WEB工程文件的指定字符串

    package com.utils; import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;impor ...

  8. java web 下载文件 response.setHeader()的用法 (转载)

    response.setHeader()的用法 response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但 ...

  9. Java Web(十一) 文件上传与下载

    文件上传 上传的准备工作 表单method必须为post 提供file组件 设置form标签的enctype属性为multipart/form-data,如果没有设置enctype属性,浏览器是无法将 ...

随机推荐

  1. 在cmd窗口下运行Java程序时无法找到主类的解决办法

    我是Java的初学者,昨天在cmd窗口下运行一段Java程序时总是有问题,可以编译但无法执行. 也就是javac时正确,一旦java时就不对了,提示找不到或无法加载主类,经百度谷歌再加上自己的摸索终于 ...

  2. verilog之task用法实例

    该用法的代码源自夏宇闻老师的教材. 源代码: module traffic_lights; reg clock, red, amber, green; , off = , red_tics = , a ...

  3. Handler导致内存泄露分析

    (非静态)内部类引起内存泄漏的原因         内部类的实现其实是通过编译器的语法糖(Syntactic sugar)实现的,通过生成相应的子类即以OutClassName$InteriorCla ...

  4. oracle 添加自增索引

    1.添加一个Sequence,此处为ID_SEQUENCE. 2.添加对应表,并设置主键 3.设置触发器 create or replace trigger sys.id_add before ins ...

  5. C#解leetcode 53.Maximum Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  6. mysql sql语句大全(2)

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  7. 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用

    最近在看关于Docker和Nginx方面的内容,先于在Docker上开发以及部署python应用自然要先能够在本机上部署,其中找到一篇文章写的最为详细并且实验成功,所以在此翻译转载过来以备后需.[原文 ...

  8. spring aop pointcut 切入点是类的公共方法(私有方法不行),还是接口的方法

    spring aop pointcut 切入点是类的公共方法(私有方法不行),还是接口的方法 类的公共方法可以,但是私有方法不行 测试一下接口的方法是否能够捕捉到

  9. (转)xcode报Could not find a storyboard named...错误的解决办法

    首先确定是否有用到storyboard 如果没有用到的话,需要将涉及到storyboard的地方修改: 1 删除plist文件里的设置 2 修改程序中使用到storyboard的地方 如果确实有使用s ...

  10. 转型函数 Boolean()

    布尔值有2种可能的值true和false;但 ECMAScript中所有类型的值都有与这两个 Boolean 值 等价的值.要将一个值转换为其对应的 Boolean 值,可以调用转型函数 Boolea ...