java - 在 Java 中缩小和混淆 JavaScript 代码

标签 java javascript minify yui-compressor

我使用 YUI Compressor 来缩小和混淆 JS 文件已有多年。但现在我需要在服务器上混淆和缩小动态生成的 JavaScript 代码。因此,这里的主要区别在于,不会有应该混淆的 JS 文件,而是向服务器(Java)发出请求,该服务器应该生成部分 JS 代码并返回已经缩小和混淆的文件。

YUI Compressor 不提供这样做的可能性。我查看了源代码,并且已经弄清楚应该重写哪些方法才能使其工作。我不想这样做(但如果没有其他办法,就必须这么做)。

那么还有其他 Java 库允许直接从 Java 代码缩小和混淆 JavaScript 字符串吗?

最佳答案

计划a)

不要将 YUI 用作命令行工具,而是将其用作 Java 库并在代码中调用它。

JavaScriptCompressor 接受 Reader 后代(例如 InputFileReader)。

    JavaScriptCompressor compressor = new JavaScriptCompressor(in, new YuiCompressorErrorReporter());

您实际上可以获取原始 JavaScript 并将其转换为 Stream,例如How do I convert a String to an InputStream in Java?

完整的集成示例如下:

http://blog.teamextension.com/yui-compressor-in-java-246

计划b)

请注意,您可以简单地将生成的 javascript 保存到文件系统中,然后从 Java 调用命令行 Yui。然后从文件系统中读取缩小的文件,就是这样,你就有了一个缩小的 JS。

关于java - 在 Java 中缩小和混淆 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003126/

相关文章:

java - JUnit:使用不同的配置运行一个测试

javascript - 测试缩小的 javascript

javascript - 后缺少名称。用于 socket.io js 文件的运算符(operator) YUI 压缩器

java - 如何在给定时间内重定向到 Struts 中的另一个操作?

java - 在什么时候短 sleep 会增加而不是减少 CPU 利用率

java - 按日期和时间对 ArrayList 的对象进行排序

javascript - 如何退出 jQuery 的递归轮询?

javascript - 如何跨框架访问元素?

javascript - div 的不透明度会影响 innerHTML 值

javascript - Closure Compiler 缩小代码中 (0, obj.method)(param1, param2) 的用途