代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
压缩js css文件
作者:
/ 发布于
2016/1/18
/
646
本来项目使用的是maven,但是jar包一时不能放入项目的仓库中。临时找到的替代方案。指定需要压缩的 js,css文件目录,执行即可。选中的目录及目录里的文件中的文件都会被压缩。准备工作需要导入yuicompressor-2.4.7.jar
import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; import org.mozilla.javascript.ErrorReporter; import org.mozilla.javascript.EvaluatorException; import com.yahoo.platform.yui.compressor.CssCompressor; import com.yahoo.platform.yui.compressor.JavaScriptCompressor; public class Test { //../mobile-h5-web/src/main/webapp/h5/assets/js/views/ //../mobile-h5-web/src/main/webapp/h5/resource/css //../mobile-h5-web/src/main/webapp/h5/resource/js // 需要压缩的目录 File dir = new File("C:\\views"); int linebreakpos = -1; boolean munge = true; boolean verbose = false; boolean preserveAllSemiColons = false; boolean disableOptimizations = false; public void testMain() throws Exception { checkFile(dir); } public void checkFile(File file) throws Exception { String fileName = file.getName(); // file 要处理的目录 if (fileName.endsWith(".svn")) return; if (fileName.endsWith(".min.js") || fileName.endsWith(".min.css")) { return; } if (file.isFile()) { jsZip(file); return; } File[] files = file.listFiles(); if (files == null || files.length == 0) return; for (File f : files) { if (file.getName().endsWith(".svn")) return; if (file.isFile()) { jsZip(file); continue; } checkFile(f); } System.out.println("-----checkfile结束------"); } /** * @param file * 需要压缩的目录 * @throws Exception */ public void jsZip(File file) throws Exception { String fileName = file.getName(); String lastName = null; String cutfilePath = null; // fileName:当前正在压缩的文件为 System.out.println("正在压缩的文件为" + fileName); if (fileName.endsWith(".js") == false && fileName.endsWith(".css") == false) { return; } Reader in = new FileReader(file); String filePath = file.getAbsolutePath(); File tempFile = new File(filePath + ".tempFile"); Writer out = new FileWriter(tempFile); if (fileName.endsWith(".js")) { lastName = ".min.js"; cutfilePath = filePath.substring(0, filePath.indexOf(".js")); } else if (fileName.endsWith(".css")) { lastName = ".min.css"; cutfilePath = filePath.substring(0, filePath.indexOf(".css")); } File newFileName = new File(cutfilePath + lastName); // 如果该文件存在则删除,重新创建该文件 if (newFileName.exists()) { System.out.println(newFileName + "文件已存在,正在删除并重新创建!"); newFileName.delete(); newFileName = new File(cutfilePath + lastName); } if (fileName.endsWith(".js")) { JavaScriptCompressor jscompressor = new JavaScriptCompressor(in, new ErrorReporter() { public void warning(String message, String sourceName, int line, String lineSource, int lineOffset) { if (line < 0) { System.err.println("\n[WARNING] " + message); } else { System.err.println("\n[WARNING] " + line + ':' + lineOffset + ':' + message); } } public void error(String message, String sourceName, int line, String lineSource, int lineOffset) { if (line < 0) { System.err.println("\n[ERROR] " + message); } else { System.err.println("\n[ERROR] " + line + ':' + lineOffset + ':' + message); } } public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource, int lineOffset) { error(message, sourceName, line, lineSource, lineOffset); return new EvaluatorException(message); } }); jscompressor.compress(out, linebreakpos, munge, verbose, preserveAllSemiColons, disableOptimizations); } else if (fileName.endsWith(".css")) { CssCompressor csscompressor = new CssCompressor(in); csscompressor.compress(out, linebreakpos); } out.close(); in.close(); // file.delete(); tempFile.renameTo(newFileName); tempFile.delete(); } public static void main(String[] args) { try { new Test().testMain(); } catch (Exception e) { e.printStackTrace(); } } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3