压缩JS
java -jar yuicompressor-2.4.jar --type js xxx.js -o xxx.js --charset utf-8
压缩CSS
java -jar yuicompressor-2.4.jar --type css xxx.css -o xxx.css --charset utf-8
java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。
(1) cmd /c dir 是执行完dir命令后关闭命令窗口。
(2) cmd /k dir 是执行完dir命令后不关闭命令窗口。
(3) cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
(4) cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
PS:压缩CSS时,会影响JS和其他类型文件!!!
压缩JS时,无问题,建议压缩哪类文件时单放置哪类文件!!!
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.InputStreamReader;
public class ZipJS {
public static void main(String[] args) throws Exception {
//文件存在目录
String dir = "D:\\js";
String[] fileNames = getFileNames(dir);
System.out.println("The total number of files:"+fileNames.length);
for (String string : fileNames) {
if(string.equals("yuicompressor-2.4.jar")){
continue ;
}
String cmd = "java -jar yuicompressor-2.4.jar --type js "+string+" -o "+string+" --charset utf-8";
//String cmd = "java -jar yuicompressor-2.4.jar --type css "+string+" -o "+string+" --charset utf-8";
Runtime.getRuntime().exec("cmd /c D: & cd "+dir+" & "+cmd);
}
}
//获取当前文件夹下所有文件名称
private static String[] getFileNames(String dir) {
File file = new File(dir);
File[] files = file.listFiles(new FileOnlyFilter());
String[] ary = new String[files.length];
for (int i = 0; i < files.length; i++) {
ary[i] = files[i].getName();
}
return ary ;
}
}
class FileOnlyFilter implements FileFilter {
public boolean accept(File file) {
return file.isFile();
}
}