我需要从传递标记language_in=ECMASCRIPT5
的.bat文件中调用Closure Compiler,我正在使用以下脚本,但收到错误消息
java.lang.classnotfoundexception: com.google,javascript.jscomp.SourceFile
我想知道:
当我省略标志代码可以很好地编译时,是否可以正确传递标志?
您能否提供有关此错误的更多信息?
java -Xms256m -Xmx256m -cp "%~dp0../shrinksafe/js.jar";"%~dp0../closureCompiler/compiler.jar --language_in=ECMASCRIPT5";"%~dp0../shrinksafe/shrinksafe.jar" org.mozilla.javascript.tools.shell.Main "%~dp0../../dojo/dojo.js" baseUrl="%~dp0../../dojo" load=build %*
最佳答案
如the documentation所述:
(ClassNotFoundException)当应用程序尝试使用其字符串名称通过其字符串名称加载类时抛出:
类Class中的forName方法。
类ClassLoader中的findSystemClass方法。
类ClassLoader中的loadClass方法。
我认为发生这种情况的原因是,当您省略该标志时代码就起作用了,原因是变量ECMASCRIPT5
是在compiler.jar中定义的,您可能未将其包括在类路径中。
您可以尝试将compile.jar放置到WEB-INF / lib中,以便将其与应用程序一起部署,并在执行时进行访问。