工具:从一个文件夹中复制jar到另一个文件夹中
工具类:从一个文件夹中复制jar到另一个文件夹中
需要的小伙伴可以试一试,很爽哦,有时候真的很需要!
需求:当我们拿到一个maven项目时,而maven项目的jar包都是通过pom.xml文件管理的,此时我们需要maven中的jar(很多,目录很复杂,很难手动复制)
有两种方式:
传统方式1.找到本地maven存放的位置,挨个进去复制jar包;(尝试了一下,复制一半花费了1个小时)
便捷方式2. 使用java写个工具帮我们做这件事, 方便快捷 (20s搞定)
有了需求,就有了我这里的工具类,下面介绍一下:
使用方式很简单,在我的main方法中你只需要给两个参数:一个源文件夹的路径,一个目的文件夹的路径。运行即可完成所有jar复制。
采用的技术:java的传统I/O操作
注意事项:
1.目的文件夹路径必须先创建,在使用
源代码:
package cc.makalu.file; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; /**
*
* @ClassName:downJarFromFile
* @Package:cc.makalu.file
* @Description:从文件中复制jar包
* @author:ljl
* @version:v0.1
* @data:2018年1月16日 下午2:25:38 备注:
*/
public class downJarFromFile { public static void readFile(String resourcePath, String targetFile,String fileName) throws FileNotFoundException {
//C:\Users\Administrator\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar
String targetPath = targetFile+"\\"+fileName;
targetPath = targetPath.replaceAll("\\\\", "/");
//System.out.println(targetPath); //F:\jar文件\antlr-2.7.7.jar
resourcePath = resourcePath.replaceAll("\\\\", "/");
//System.out.println(resourcePath);
FileInputStream in = new FileInputStream(resourcePath);
FileOutputStream out = new FileOutputStream(targetPath);
byte[] buffer = new byte[2097152];
try {
while ((in.read(buffer)) != -1) {
out.write(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
} public static boolean copyJarFromFile(String resourceFile, String targetFile) throws FileNotFoundException {
boolean flag = false;
File file = new File(resourceFile);
if (!file.isDirectory()) {
String fileName = file.getName();
String absolutepath = file.getAbsolutePath();
System.out.println("文件");
System.out.println("path=" + file.getPath());
System.out.println("absolutepath=" + absolutepath);
System.out.println("name=" + fileName); // 获得文件后缀名
if (fileName.indexOf(".") != -1) {
String xt = fileName.substring(fileName.indexOf("."), fileName.length());
if (xt.contains(".jar") && xt.endsWith(".jar")) {
readFile(absolutepath, targetFile,fileName);
}
}
} else if (file.isDirectory()) {
System.out.println("文件夹");
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(resourceFile + "\\" + filelist[i]);
if (!readfile.isDirectory()) {
String fileName = readfile.getName();
String absolutepath = readfile.getAbsolutePath();
System.out.println("path=" + readfile.getPath());
System.out.println("absolutepath=" + readfile.getAbsolutePath());
System.out.println("name=" + readfile.getName());
// 获得文件后缀名
if (fileName.lastIndexOf(".") != -1) {
String xt = fileName.substring(fileName.indexOf("."), fileName.length());
if (xt.contains(".jar") && xt.endsWith(".jar")) {
readFile(absolutepath, targetFile, fileName);
}
}
} else if (readfile.isDirectory()) {
copyJarFromFile(resourceFile + "\\" + filelist[i], targetFile);
}
}
}
return flag;
} public static void main(String[] args) {
try {
copyJarFromFile("C:\\Users\\Administrator\\.m2\\repository", "F:\\jar文件");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} }
看看运行截图:

最终将C:\\Users\\Administrator\\.m2\\repository目录中的所有的jar全部复制到了F:\\jar文件 目录中。
当比人苦恼一个小时才能完成的事情,你几十秒就搞定了!!!这种感觉很爽哦
工具:从一个文件夹中复制jar到另一个文件夹中的更多相关文章
- Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)(转)
目的:Eclipse插件开发中,经常要引用第三方包或者是引用其他插件中的类,由于插件开发环境引用类路径的设置和运行平台引用类路径的设置不同,经常导致开发过程OK,一旦运行则出现NoClassDefFo ...
- 记录:替换线上springboot项目可执行jar包中依赖jar里的class文件
问题背景: 项目组发现线上版本问题后,定位是由于项目依赖的某个jar包中有个小BUG. 解决方案: 在修改了对应的java文件后,编译出对应的class文件.从生产环境下载项目jar包,解压后,找到对 ...
- Maven 复制jar到指定目录
在完成模块开发后,需要发布jar到nexus上,与此同时,则要部署开发的模块,需要将编译打包的jar复制到指定的路径,再进行部署,而不是手动的去复制那些jar,因为当模块多的话,则会感到特别的烦,所以 ...
- 后缀.jar的是什么文件?
解压kafka 打开后是一堆.jar结尾的文件,那么后缀.jar的是什么文件? JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种 ...
- Eclipse中调试Jar包的源码(调试Struts2源码)
首先在Eclipse中创建一个新的项目,加入运行Struts2所需要的JAR文件,并将它们加到项目的CLASSPATH中(在Lisbs中右击 build path 如下图: ),成功后的界面如图 1- ...
- 替换Jar包内的文件
要替换Jar包内的文件可以用以下命令实现: jar uvf myjar.jar com/test/myclass.class 这里值得注意的是 myclass.class 必须放在com/test ...
- 使用 windows 批处理指令(BAT文件)进行文件删除、复制操作
以下是做文件删除和复制的批处理指令 ::替换文件需要添加 /y 参数才能直接替换.不然会出现提示是否替换. ::复制Axis2Implementation和WebServices编译后的文件到tomc ...
- Windows中添加自己的程序到开机启动中(添加服务,添加注册表)
在系统启动的时候启动自己想要启动的程序: 方法一:利用开机启动文件夹 将exe文件或exe文件的快捷方式复制到(启动)文件夹下 以win7为例:开始→所有程序→启动→鼠标右键打开 方法二:添加系统服务 ...
- java中jar命令打包一个文件夹下的所有文件
(1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help出现C:\Documents and Settings\dly>jar -help非法选项:h用法:jar ...
随机推荐
- MPSOC之5——开发流程BOOT.BIN
需要把若干文件打成大包,烧写到flash或者sd卡中,才能启动运行. 1.petalinux打包 petalinux-packet打包时,需要petalinux的工程,限制太死了,不用. 2 wind ...
- 后台程序处理 (一)python asyncio 协程使用
由于脚本需要在完成事件处理后N秒检查事件处理结果,当执行失败时再执行另一个事件处理. 想要最小化完成这个功能.同时在第一时间就将执行完毕的结果反馈给接口. 因此想到使用协程. 使用之前先翻阅了一下现有 ...
- WEB版一次选择多个图片进行批量上传(WebUploader)的解决方案
最近在学习百度的开源上传组件WebUploader,上一篇文章,学习了批量文件上传,今天学习一下批量图片上传,实际上与文件上传很类似,只是添加了图片显示功能,这个功能WebUploader组件中已经提 ...
- docker学习笔记(一)
docker是一种容器技术,现在火的一塌糊涂,最近公司打算用docker统一开发.测试.预上线.上线环境,所以花了时间研究一下. docker是一种容器技术,之前是基于LXC容器,现在已经改成基于li ...
- C#设计模式之二十二访问者模式(Visitor Pattern)【行为型】
一.引言 今天我们开始讲"行为型"设计模式的第九个模式,该模式是[访问者模式],英文名称是:Visitor Pattern.如果按老规矩,先从名称上来看看这个模式,我根本不能获 ...
- 字符串输入时的strlen()与\0
在做串的数据结构时,被字符串printf %s输出时的结尾判断.strlen();长度.自定义StrCopy();字符串复制函数.StrAssign();字符串赋值函数卡了一下,固写此博巩固相关知识点 ...
- BZOJ1798 AHOI2009 维护数列
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...
- MAMP升级mysql5.6到5.7
RT 1.先把mamp环境停掉 sudo sh /Applications/MAMP/bin/stop.sh 2.然后使用brew安装mysql5.7 brew install mysql 3.默认安 ...
- vivado hls(1)
笔记 1.vivado hls是fpga高级综合工具,可以将C语言转换成verilog代码,适合编写算法,但是要有硬件思想. 2.软核就是只要资源足够,就可以用逻辑打一个CPU出来,与硬核不一样,硬 ...
- php 理解
<?php class t { var $num; var $dynamic_function; public function dynamic_function() { $func = $th ...