一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 用代碼更新你的jar包

用代碼更新你的jar包

2019-11-03 17:52java教程網(wǎng) JAVA教程

這篇文章主要介紹了用程序代碼更新com目錄下的所有文件到j(luò)ar的對應(yīng)目錄結(jié)構(gòu)中去,這樣可以做到自動更新程序吧

假設(shè)目錄結(jié)構(gòu)是maven標(biāo)準(zhǔn)結(jié)構(gòu)

復(fù)制代碼代碼如下:

-src
-target
-test.jar(你需要更新的jar包)

 

 

復(fù)制代碼代碼如下:


package com.foo.common.base.utils.development;

 

import static org.junit.Assert.*;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;

import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;

public class JarUpdater {
 public static final Logger logger = LoggerFactory
   .getLogger(JarUpdater.class);

 @Test
 /**
  * 更新com目錄下的所有文件到j(luò)ar的對應(yīng)目錄結(jié)構(gòu)中去
  * 
  * 一次成功的代碼更新,我們斷言jar的大小是不一樣的
  */
 public void updateClass() throws IOException, InterruptedException {

  ClassPathResource myPath = new ClassPathResource(
    "jarUpdaterConfig.properties");
  Properties p = new Properties();
  p.load(myPath.getInputStream());

  ClassUpdater classUpdater = new ClassUpdater().applySettings(p);

  classUpdater.compileAndCopyClass();

  String workingDirectory = p.getProperty("workingDirectory");
  String jar4UpdateName = p.getProperty("jar4UpdateName");
  // class compile path
  String updateSourcePath = workingDirectory + "target";
  // class root folder
  String updateSourceDir = "com";

  Date startDate = new Date();

  File myJar = new File(workingDirectory + jar4UpdateName);
  if (!myJar.isFile()) {
   logger.error("file with following path {} does not exist.",
     jar4UpdateName);
   return;
  }
  long oldLength = myJar.length();
  logger.info("Now ready to update jar file with name:{},size:{}",
    myJar.getName(), myJar.length());
  String myCommand = "jar uf " + workingDirectory + jar4UpdateName
    + " -C " + updateSourcePath + " " + updateSourceDir;
  logger.info("Update command【{}】", myCommand);

  Runtime.getRuntime().exec(myCommand);

  while (!FileUtils.isFileNewer(myJar, startDate)) {
   logger.info("sleep for two seconds,checking changes...");
   Thread.sleep(2000);
  }
  assertNotEquals(
    "jar may not be updated successfully,check the code please",
    oldLength, myJar.length());
  logger.info("Now finish update jar file with size:{}", myJar.length());
 }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩 国产 欧美 精品 在线 | vomoulei成人舞蹈 | 暴露狂婷婷医院暴露tx | 91寡妇天天综合久久影院 | 99热色| 国产成+人+综合+亚洲不卡 | 青青青在线视频播放 | 男人把大ji巴放进男人免费视频 | 亚洲精品tv久久久久久久久久 | 国产偷窥女洗浴在线观看亚洲 | 免费黄色小说 | 男男视频18免费网站 | 日韩欧美亚洲天堂 | 日韩高清在线观看 | 精品一区二区三区高清免费不卡 | 四虎2021地址入口 | 美女被扣逼 | 91东航翘臀女神在线播放 | 草莓视频幸福宝 | 韩国悲惨事件30无删减在线 | 2012年免费中文视频 | 国产精品久久国产精品99盘 | 黑人同学征服教师麻麻 | 久久人妻无码毛片A片麻豆 久久热这里只有 精品 | 天堂网在线.www天堂在线视频 | 香蕉在线精品亚洲第一区 | 91狠狠| 色香视频在线 | 白丝爆动漫羞羞动漫网站 | 99re精品在线 | 精品福利一区 | 情缘免费观看完整版 | 3d蒂法精品啪啪一区二区免费 | 天堂网在线.www天堂在线视频 | 污小说在线阅读 | tobu8中国在线观看免费视频 | 日本一区二区三区在线 观看网站 | 风间由美vec399| 1986葫芦兄弟全集免费观看第十集 | 猫扑俩性 | 99久久免费看精品国产一区 |