簡體   English   中英

運行方式,Groovy腳本時NoClassDefFoundError ... org / apache / commons / cli / CommandLineParser

[英]NoClassDefFoundError…org/apache/commons/cli/CommandLineParser when Run As, Groovy Script

我剛剛安裝了Eclipse KEPLER,並試圖將我的所有項目從github中恢復。 這些項目都是gradle項目所以我的程序非常......

  1. 克隆git repo
  2. gradle eclipse
  3. 將項目導入Eclipse

一切似乎都很好,除了我不能“Run As,Groovy Script”項目中的腳本。 當我嘗試時,控制台噴出......

java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
    at java.lang.Class.getMethod0(Class.java:2764)
    at java.lang.Class.getMethod(Class.java:1653)
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:99)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineParser
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

有趣的是,我可以“運行,Java應用程序”沒有問題。 它絕對是一個Groovy項目,因為它在項目圖標中有G。 stacktrace是什么意思,我該如何克服它?

導致我的問題的存儲庫位於https://github.com/robertkuhar/StackOverflow

我的gradle在eclipse kepler的groovy 1.8.6上是1.11,帶有Groovy-Eclipse插件版本:2.8.0.xx-20130703-1600-e43-RELEASE

看起來在創建“Groovy Script”運行配置時,主類設置為org.codehaus.groovy.tools.GroovyStarter而不是您打算運行的腳本。 使用您想要運行的Groovy類/腳本替換它會對問題進行排序。

更新

經過一番挖掘解決問題的方法是:

  • 從Gradle構建中刪除Groovy依賴項。
  • 按照本答案中的建議配置項目類路徑和性質

的build.gradle

eclipse {
    project {
        natures.add 'org.eclipse.jdt.groovy.core.groovyNature'
    }
    classpath {
        file {
            withXml {
                Node node = it.asNode()
                node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_SUPPORT"]) 
                node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_DSL_SUPPORT"])
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM