我使用 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/