Java 1.7.0_75下的groovysh崩溃(Windows XP)

时间:2015-01-22 05:41:35

标签: groovy

使用最新版本的Groovy(截至本文撰写时),2.4.0和Windows XP(sp3),我遇到了一个熟悉但令人困惑的错误:

    C:\>groovysh
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java
:106)
        at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128)
Caused by: groovy.lang.MissingPropertyException: No such property: leftPadding f
or class: org.codehaus.groovy.tools.shell.util.HelpFormatter
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptByteco
deAdapter.java:51)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setGroovyObjectProp
erty(ScriptBytecodeAdapter.java:532)
        at org.codehaus.groovy.tools.shell.util.HelpFormatter.<init>(HelpFormatt
er.groovy:39)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstru
ctor.java:77)
        at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteN
oUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstru
ctor(CallSiteArray.java:57)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor
(AbstractCallSite.java:230)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor
(AbstractCallSite.java:234)
        at org.codehaus.groovy.tools.shell.Main.main(Main.groovy:68)
        ... 6 more

我使用Groovy 2.3.9没有遇到任何困难,所以我想知道是否有人有建设性的建议。

感谢。

1 个答案:

答案 0 :(得分:2)

您的错误发生在HelpFormatter类中。来源可以通过谷歌找到,即在这里: https://github.com/groovy/groovy-core/blob/master/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/HelpFormatter.groovy

如您所见,类HelpFormatter扩展了org.apache.commons.cli.HelpFormatter

并期望超类有一个字段leftPadding,但找不到。

如果你在运行groovysh时在你的CLASSPATH上有不同版本的apache commons-cli.jar,可能就是这种情况。

由于我无法重现您的问题,这是我能看到的最可能的原因。

运行

echo%CLASSPATH

在Windows中

查看CLASSPATh(我认为)。