import org.apache.commons.lang.StringUtils; //导入方法依赖的package包/类
public static void copyResourceFolder(String resourceFolder, String destDir)
throws IOException {
final File jarFile = new File(Util.class.getProtectionDomain()
.getCodeSource().getLocation().getPath());
if (jarFile.isFile()) { // Run with JAR file
resourceFolder = StringUtils.strip(resourceFolder, "/");
final JarFile jar = new JarFile(jarFile);
// gives ALL entries in jar
final Enumeration entries = jar.entries();
while (entries.hasMoreElements()) {
JarEntry element = entries.nextElement();
final String name = element.getName();
// filter according to the path
if (name.startsWith(resourceFolder + "/")) {
String resDestDir = Util.combineFilePath(destDir,
name.replaceFirst(resourceFolder + "/", ""));
if (element.isDirectory()) {
File newDir = new File(resDestDir);
if (!newDir.exists()) {
boolean mkdirRes = newDir.mkdirs();
if (!mkdirRes) {
logger.error("Failed to create directory "
+ resDestDir);
}
}
} else {
InputStream inputStream = null;
try {
inputStream = Util.class.getResourceAsStream("/"
+ name);
if (inputStream == null) {
logger.error("No resource is found:" + name);
} else {
Util.outputFile(inputStream, resDestDir);
}
/* compress js files */
inputStream = Util.class.getResourceAsStream("/"
+ name);
compressor.compress(inputStream, name, destDir);
} finally {
if (inputStream != null) {
inputStream.close();
}
}
}
}
}
jar.close();
} else { // Run with IDE
final URL url = Util.class.getResource(resourceFolder);
if (url != null) {
try {
final File src = new File(url.toURI());
File dest = new File(destDir);
FileUtils.copyDirectory(src, dest);
Util.compressFilesInDir(src, destDir);
} catch (URISyntaxException ex) {
logger.error(ex);
}
}
}
}