用代码更新你的jar包
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()); }}
- Ubuntu下的IDEA编辑器,创建maven工程后,jar包已经下载,但是在代码中不导入
- Android 应用自动检测更新代码
- Android开发人员不得不收集的代码(持续更新中)
- 把java代码导成jar包以及安装包的教程
- GIT----更新代码和上传代码操作的步骤
- Idea 导入module后,代码中jar包找不到引用
- Android项目 手机安全卫士(代码最全,注释最详细)之七 应用程序的更新安装
- C#编码简单性之函数篇(如何编写简短的C#代码,随时更新)
- Java POI 导出 Excel 到本地详细实例(附jar包,测试代码,测试结果图)
- svn自动更新服务器最新代码
- 解决jenkins打包时不能及时更新到最新代码的问题
- 经常使用的C#代码(每日更新)
- html5 更新图片颜色示例代码
- fastboot系统更新代码流程分析
- Android开发人员不得不收集的代码(不断更新中...)
- [Java代码] exe4j的使用方法(java把jar包打成exe) (转载)
- 【从0開始Tornado建站】0.9版本号python站点代码开源--持续更新中
- xml解析(详细步骤及实例代码作为参考,理论部分请参阅互联网)之 SAXP (更新中)
- 企业项目代码片段 和 技巧 (持续更新)
- jxl对Excel的读、写、更新以及插入图片(含代码实例)