工具类:从一个文件夹中复制jar到另一个文件夹中

需要的小伙伴可以试一试,很爽哦,有时候真的很需要!

需求:当我们拿到一个maven项目时,而maven项目的jar包都是通过pom.xml文件管理的,此时我们需要maven中的jar(很多,目录很复杂,很难手动复制)

有两种方式:

传统方式1.找到本地maven存放的位置,挨个进去复制jar包;(尝试了一下,复制一半花费了1个小时)

便捷方式2. 使用java写个工具帮我们做这件事, 方便快捷   (20s搞定)

有了需求,就有了我这里的工具类,下面介绍一下:

使用方式很简单,在我的main方法中你只需要给两个参数:一个源文件夹的路径,一个目的文件夹的路径。运行即可完成所有jar复制。

采用的技术:java的传统I/O操作

注意事项:

1.目的文件夹路径必须先创建,在使用

源代码:

  1. package cc.makalu.file;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8.  
  9. /**
  10. *
  11. * @ClassName:downJarFromFile
  12. * @Package:cc.makalu.file
  13. * @Description:从文件中复制jar包
  14. * @author:ljl
  15. * @version:v0.1
  16. * @data:2018年1月16日 下午2:25:38 备注:
  17. */
  18. public class downJarFromFile {
  19.  
  20. public static void readFile(String resourcePath, String targetFile,String fileName) throws FileNotFoundException {
  21. //C:\Users\Administrator\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar
  22. String targetPath = targetFile+"\\"+fileName;
  23. targetPath = targetPath.replaceAll("\\\\", "/");
  24. //System.out.println(targetPath); //F:\jar文件\antlr-2.7.7.jar
  25. resourcePath = resourcePath.replaceAll("\\\\", "/");
  26. //System.out.println(resourcePath);
  27. FileInputStream in = new FileInputStream(resourcePath);
  28. FileOutputStream out = new FileOutputStream(targetPath);
  29. byte[] buffer = new byte[2097152];
  30. try {
  31. while ((in.read(buffer)) != -1) {
  32. out.write(buffer);
  33. }
  34. } catch (IOException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38.  
  39. public static boolean copyJarFromFile(String resourceFile, String targetFile) throws FileNotFoundException {
  40. boolean flag = false;
  41. File file = new File(resourceFile);
  42. if (!file.isDirectory()) {
  43. String fileName = file.getName();
  44. String absolutepath = file.getAbsolutePath();
  45. System.out.println("文件");
  46. System.out.println("path=" + file.getPath());
  47. System.out.println("absolutepath=" + absolutepath);
  48. System.out.println("name=" + fileName);
  49.  
  50. // 获得文件后缀名
  51. if (fileName.indexOf(".") != -1) {
  52. String xt = fileName.substring(fileName.indexOf("."), fileName.length());
  53. if (xt.contains(".jar") && xt.endsWith(".jar")) {
  54. readFile(absolutepath, targetFile,fileName);
  55. }
  56. }
  57. } else if (file.isDirectory()) {
  58. System.out.println("文件夹");
  59. String[] filelist = file.list();
  60. for (int i = 0; i < filelist.length; i++) {
  61. File readfile = new File(resourceFile + "\\" + filelist[i]);
  62. if (!readfile.isDirectory()) {
  63. String fileName = readfile.getName();
  64. String absolutepath = readfile.getAbsolutePath();
  65. System.out.println("path=" + readfile.getPath());
  66. System.out.println("absolutepath=" + readfile.getAbsolutePath());
  67. System.out.println("name=" + readfile.getName());
  68. // 获得文件后缀名
  69. if (fileName.lastIndexOf(".") != -1) {
  70. String xt = fileName.substring(fileName.indexOf("."), fileName.length());
  71. if (xt.contains(".jar") && xt.endsWith(".jar")) {
  72. readFile(absolutepath, targetFile, fileName);
  73. }
  74. }
  75. } else if (readfile.isDirectory()) {
  76. copyJarFromFile(resourceFile + "\\" + filelist[i], targetFile);
  77. }
  78. }
  79. }
  80. return flag;
  81. }
  82.  
  83. public static void main(String[] args) {
  84. try {
  85. copyJarFromFile("C:\\Users\\Administrator\\.m2\\repository", "F:\\jar文件");
  86. } catch (FileNotFoundException e) {
  87. e.printStackTrace();
  88. }
  89. }
  90.  
  91. }  

看看运行截图:

最终将C:\\Users\\Administrator\\.m2\\repository目录中的所有的jar全部复制到了F:\\jar文件  目录中。

当比人苦恼一个小时才能完成的事情,你几十秒就搞定了!!!这种感觉很爽哦

工具:从一个文件夹中复制jar到另一个文件夹中的更多相关文章

  1. Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)(转)

    目的:Eclipse插件开发中,经常要引用第三方包或者是引用其他插件中的类,由于插件开发环境引用类路径的设置和运行平台引用类路径的设置不同,经常导致开发过程OK,一旦运行则出现NoClassDefFo ...

  2. 记录:替换线上springboot项目可执行jar包中依赖jar里的class文件

    问题背景: 项目组发现线上版本问题后,定位是由于项目依赖的某个jar包中有个小BUG. 解决方案: 在修改了对应的java文件后,编译出对应的class文件.从生产环境下载项目jar包,解压后,找到对 ...

  3. Maven 复制jar到指定目录

    在完成模块开发后,需要发布jar到nexus上,与此同时,则要部署开发的模块,需要将编译打包的jar复制到指定的路径,再进行部署,而不是手动的去复制那些jar,因为当模块多的话,则会感到特别的烦,所以 ...

  4. 后缀.jar的是什么文件?

    解压kafka 打开后是一堆.jar结尾的文件,那么后缀.jar的是什么文件? JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种 ...

  5. Eclipse中调试Jar包的源码(调试Struts2源码)

    首先在Eclipse中创建一个新的项目,加入运行Struts2所需要的JAR文件,并将它们加到项目的CLASSPATH中(在Lisbs中右击 build path 如下图: ),成功后的界面如图 1- ...

  6. 替换Jar包内的文件

    要替换Jar包内的文件可以用以下命令实现: jar uvf myjar.jar com/test/myclass.class 这里值得注意的是  myclass.class 必须放在com/test ...

  7. 使用 windows 批处理指令(BAT文件)进行文件删除、复制操作

    以下是做文件删除和复制的批处理指令 ::替换文件需要添加 /y 参数才能直接替换.不然会出现提示是否替换. ::复制Axis2Implementation和WebServices编译后的文件到tomc ...

  8. Windows中添加自己的程序到开机启动中(添加服务,添加注册表)

    在系统启动的时候启动自己想要启动的程序: 方法一:利用开机启动文件夹 将exe文件或exe文件的快捷方式复制到(启动)文件夹下 以win7为例:开始→所有程序→启动→鼠标右键打开 方法二:添加系统服务 ...

  9. java中jar命令打包一个文件夹下的所有文件

    (1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help出现C:\Documents and Settings\dly>jar -help非法选项:h用法:jar ...

随机推荐

  1. Java并发编程有多难?这几个核心技术你掌握了吗?

    本文主要内容索引 1.Java线程 2.线程模型 3.Java线程池 4.Future(各种Future) 5.Fork/Join框架 6.volatile 7.CAS(原子操作) 8.AQS(并发同 ...

  2. presto

    presto中文站:http://prestodb-china.com/ 进入hadoop机器,进入presto所在bin目录:presto --server localhost:9090 --cat ...

  3. atom添加eslint插件

    在atom编辑器里添加插件,操作步骤如下:以atom-ide-vue插件为例 //切换到插件目录cd /Users/name/.atom/packages //将需要下载插件的源代码拉下来git cl ...

  4. OC金额转大写

    -(NSString *)digitUppercaseWithMoney:(NSString *)money { NSMutableString *moneyStr=[[NSMutableString ...

  5. 当前时间、前n天、后n天、取前n条记录、从第n条开始取m条

    当前时间:NOW() 前n天:DATE_SUB(NOW(),INTERVAL n DAY) 后n天:DATE_SUB(NOW(),INTERVAL -n DAY) 取前n条记录:SELECT * FR ...

  6. 【CSS3】透明度opacity与rgba()区别、光标cursor、display、轮廓outline与margin及border区别、em和rem区别

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Principle-初步认识(简介)

    Principle官网 探究了一下 . 呃--作出了下边这玩意 做的好的是这样的,瞬间把自己给菜了,给大家看看,设计需要UI功夫啊 把这个用上你的界面就搞基了,图形在水平.垂直上的动态效果(*.*) ...

  8. RabbitMQ之消费者Demo(队列参数详细说明)

    package com.jiefupay; import java.io.IOException; import java.util.HashMap; import java.util.Map; 8 ...

  9. Nodejs的运行原理-架构篇

    前言 本来是想只做一个Nodejs运行原理-科普篇,但是收到了不少私信,要我多分享一些更进阶,更详细的内容,所以我会在接下来的两个月里继续更新Nodejs运行原理. PS:此系列只做Nodejs的运行 ...

  10. 冒烟测试与BVT测试

    冒烟测试,它和回归测试的性质一样--只是一个测试活动,并不是一个测试阶段.冒烟测试贯穿于测试的任何一个阶段,单元测试.集成测试.系统测试里都有冒烟测试. 冒烟测试和其他所有的测试活动的目的不一样,它不 ...