java.lang.NoSuchFieldError : instance exception using yuicompressor to minify JS files

标签 java ant minify

我们正在将应用程序服务器从运行 java 1.6 的 Weblogic 11g 升级到运行 java 1.8 的 Weblogic 12c。我们的 ANT 构建过程中的步骤之一是使用 YUI Compressor(版本 2.4.8)来缩小我们的 CSS 和 JS 文件。缩小 CSS 文件的步骤效果很好。但是当我们尝试缩小 JS 文件时,我们会收到以下错误:

java.lang.NoSuchFieldError: instance
    at org.mozilla.javascript.CompilerEnvirons.<init>(CompilerEnvirons.java:48)
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:310)
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533)
    at com.yahoo.platform.yui.compressor.YUICompressTask.doCompression(YUICompressTask.java:202)
    at com.yahoo.platform.yui.compressor.YUICompressTask.execute(YUICompressTask.java:101)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    at org.apache.tools.ant.Main.runBuild(Main.java:758)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

当我查看 yuicompressor-2.4.8.jar 中导致错误的类时,我看到 CompilerEnvirons.java 的第 48 行如下所示:

this.errorReporter = DefaultErrorReporter.instance;

但是当我检查 DefaultErrorReporter.java 类时,它是空的。整个类由以下部分组成:

class 
{
}

Java 1.6 似乎并不关心这个,但 java 1.8 关心。

无论如何,我都不是这个压缩工具的专家,所以我想知道是否有人对可能导致这种情况的原因有任何想法。如果我需要提供更多信息,我很乐意提供。

谢谢。

最佳答案

结果证明这是一个损坏的 JAR 文件。

关于java.lang.NoSuchFieldError : instance exception using yuicompressor to minify JS files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844687/

相关文章:

deployment - phing 嵌套 if 条件

css - LESS 优化与缩小 CSS 文件

visual-studio-2010 - 需要 - Visual Studio 自定义构建操作来缩小 JS 和 CSS

java - 有 'general logical error exception'吗?

java - Lucene - 如何访问搜索到的文档?

java - sitemesh代替全 View spring

java - 使用 Jackson 在运行时将实体动态序列化为其 ID 或其完整表示

java - Ant 警告 : Implicitly compiled files were not subject to annotation processing

ant - 更新属性文件后重新加载属性

javascript - 如何编写正则表达式以删除 HTMl 缩小器的标签和单词之间的空格