使用JavaAPI格式化JavaScript

使用JavaAPI格式化JavaScript,java,javascript,velocity,Java,Javascript,Velocity,我正在用java中的velocity生成JavaScript代码 例如:我生成了JavaScript并得到以下字符串: importClass(java.util.ArrayList); function fun(arg) { if (true){ return true;} else{ return true;}} 是否有任何java API采用此字符串并按以下方式格式化此JavaScript: importClass(java.util.ArrayList); function f

我正在用java中的velocity生成JavaScript代码

例如:我生成了JavaScript并得到以下字符串:

importClass(java.util.ArrayList); function fun(arg) { if (true){ return true;} else{    return true;}}
是否有任何java API采用此字符串并按以下方式格式化此JavaScript:

importClass(java.util.ArrayList);

function fun(arg) { 
   if (true){ 
       return true;
   }
   else{
    return true;
   } 
}
闭包编译器 您可以使用谷歌的闭包编译器。
它格式化、压缩、优化并查找JavaScript代码中的错误

要快速了解它能做什么,您可以


例子 对于示例字符串

importClass(java.util.ArrayList); function fun(arg) { if (true){ return true;} else{    return true;}}
如果只想格式化,请使用编译选项“仅限空白”和“漂亮打印”,返回:

importClass(java.util.ArrayList);
function fun(arg) {
  if(true) {
    return true
  }else {
    return true
  }
}
;
总之,使用closurecompiler,您可以选择几个选项来优化和/或格式化输入代码(以字符串或文件URI的形式给出),或者以字符串的形式返回优化/格式化的JS,或者将其保存到文件中

我真的可以推荐使用“简单”优化模式。对于较长的Java脚本,它确实为您节省了大量不需要的字节。此外,它还加快了脚本执行速度

对于示例字符串,编译选项“Simple”(而不是“仅限空白”)和“Pretty print”返回

如您所见,两个
fun()
函数的结果是相同的(布尔
true
)。
然而,第二个已经删除了所有无用的代码(通过保持有效性!),执行速度会更快


下载和参考 现在,实际的编译器是用Java编写的,可以作为(更新2014-07-10:)使用

作为第二种选择,您可以实现自己的包装器类来与RESTAPI()通信。不需要太多的工作/代码

更多信息可在此处获得:




希望能有所帮助。

可能重复:@Eloff:我浏览了这个链接,找到了几种格式化javascript的方法。但仍在寻找可以直接用于格式化JAVA脚本的JavaAPI。虽然,我可以在我的java代码中使用命令行选项,但如果能找到直接API,那就太好了。这就是我想要的。非常感谢分享这个。让我把这个应用到我的项目中,并提供反馈。
importClass(java.util.ArrayList);
function fun() {
  return!0
}
;