2012-12-22 33 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。