激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

用代碼更新你的jar包

2019-11-03 17:52java教程網 JAVA教程

這篇文章主要介紹了用程序代碼更新com目錄下的所有文件到jar的對應目錄結構中去,這樣可以做到自動更新程序吧

假設目錄結構是maven標準結構

復制代碼代碼如下:

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

 

 

復制代碼代碼如下:


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目錄下的所有文件到jar的對應目錄結構中去
  * 
  * 一次成功的代碼更新,我們斷言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());
 }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品视频亚洲 | 精品国产一区二区久久 | 国产成人自拍视频在线观看 | 国产成年人视频网站 | 国产日韩在线观看视频 | 精品一区久久久 | 日本一级黄色大片 | 国产激情精品一区二区三区 | 亚洲综人网 | 久久成人免费观看 | 性猛aa久久久 | 大西瓜永久免费av在线 | 男男羞羞视频网站国产 | 91小视频在线观看免费版高清 | 黄色网战入口 | 日本逼逼视频 | 哪里可以看免费的av | 久久影院免费观看 | 日本不卡一二三区 | 久久久久久亚洲综合影院红桃 | 羞羞漫画无遮挡观看 | 欧美一级电影在线观看 | 精国产品一区二区三区四季综 | 欧美大逼网| 国产高清毛片 | 黄视频网站免费在线观看 | 激情小说激情图片激情电影 | 日韩精品一区二区在线 | 亚洲午夜精选 | 国产黄色网页 | 91精品国产乱码久久久久久久久 | fc2成人免费人成在线观看播放 | av免费在线观看av | 狠狠操操| 黄色99视频 | 色妞妞视频 | 久久免费看毛片 | 精品一区在线视频 | 成人免费网站在线观看视频 | 成人毛片一区二区三区 | av电影在线免费 |