2012-12-22 60 views
3

混淆JavaScript代码可能重复:缩减大小和Java中

What is the best free JavaScript obfuscator that is available as a Java library?

我使用YUI压缩机的年压缩和模糊处理JS文件。但是现在我需要混淆和缩小服务器上动态生成的JavaScript代码。所以这里的主要区别是,不会有JS文件应该被模糊处理,而是请求服务器(Java),它应该生成部分JS代码并返回它们已经被缩小和混淆。

YUI压缩机不提供这样做的可能性。我观察了消息来源,并已经计算出应该重写哪些方法才能使其工作。我不想这样做(但如果没有其他方法,将不得不这样做)。

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

谢谢!

+0

代码是否真的生成?为什么生成逻辑不能创建被缩小的代码(使用短变量名称)。 – closure

+0

这是好点,我也想过这个。但不是完整的代码是完全生成的。它由一些已经创建的模板构建,并生成一些代码。您的解决方案是一个很好的思考方式,但我只想确保没有其他解决方案可以使用。 –

+0

我的建议是做一些关于缩小的阅读。我不认为缩小器做得太多。当您生成代码并且您完全控制逻辑时,您的缩小将会更加优秀。 – closure

回答

0

计划一)

使用YUI不是一个命令行工具,但作为一个Java库,并调用它在你的代码。

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

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

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

集成的一个完整的例子是在这里:

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

计划B)

请注意,您可以在生成的JavaScript只需保存到文件系统,并调用命令行衣来自Java。然后从文件系统中读取缩小的文件,就是这样,你有一个缩小的JS。