局部更新 java web 的文件

时间:2021-07-23 21:50:34

方法一:直接更新文件

直接修改部署后的文件。比如用 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&period;setHeader&lpar;&rpar;的用法 &lpar;转载&rpar;

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

  9. Java Web&lpar;十一&rpar; 文件上传与下载

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

随机推荐

  1. C&num;获取外网IP

    思路是通过WebRequest连接一些网上提供IP查询服务的网站,下载到含有你的IP的网页,然后用正则表达式提取出IP来 class Program { static void Main(string ...

  2. PHP读取XML文件数据

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <node> <student> ...

  3. datatable 的ajax修改参数,post可以传参处理

          datatables常用参数记录 {                "searchable": false,                "orderabl ...

  4. Swift - 手机摇晃的监测和响应

    摇晃手机也是一种常用的交互手段(比如微信摇一摇功能).iOS SDK中已经将shake事件方便地融合进去了,就像触发touch事件一样简单,发生摇晃事件后程序会自动执行. 1 2 3 4 5 6 7 ...

  5. 关于jquery的&dollar;&period;ajax发接口的同步与异步问题

    1.在使用$.ajax发接口时想对返回数据做一些处理后拿到其他方法中使用 发请求函数如下: function getProjectName(projectId){ project.projectNam ...

  6. java基础回顾(五)线程详解以及synchronized关键字

    本文将从线程的使用方式.源码.synchronized关键字的使用方式和陷阱以及一些例子展开java线程和synchronized关键字的内容. 一.线程的概念 线程就是程序中单独顺序的流控制.线程本 ...

  7. Tinker 热修复

    集成方式: 第一步:在project  build.gradle 文件中添加: dependencies { // Tinker classpath("com.tinkerpatch.sdk ...

  8. &period;NET面试题系列(三)排序算法

    冒泡排序 , , , , , 7, 2, 4 }; //外层循环控制排序趟数 ; i < arr.Length - ; i++) { //内层循环控制每一趟排序多少次 ; j < arr. ...

  9. 使用CefSharp在&period;Net程序中嵌入Chrome浏览器(三)——基本操作

    CefSharp本身提供了WPF和WinForm两个版本的控件,这两个版本的控件使用方法大同小异,由于我WPF的版本用的较多,这里就简单的介绍下WPF版的CEFSharp控件的用法. 加载页面: Ch ...

  10. mysql5&period;7 安装版 表不能输入汉字解决方案

    安装版本 的安装目录没有 my.ini 配置文件 在所在表执行 alter table 数据表名 CONVERT TO CHARACTER SET utf8;