0

私はjsonファイルを解析するためにgroovyにこのコードを持っています:

File file = new File(configFile)
def config = new JsonSlurper().parse(file)

Intellij で実行すると、問題なく動作します。次に、ビルドして .jar を作成し、ターミナルで次のように実行します: java -jar file.jar を実行すると、次の例外が発生します。

    Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: groovy.json.JsonSlurper.parse() is applicable for argument types: (File) values: [./resources/config.json]
Possible solutions: parse(java.io.Reader), use([Ljava.lang.Object;), wait(), any(), grep(), wait(long)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:70)
    at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
    at org.forgerock.migrator.ConfigLoader.loadConfig(ConfigLoader.groovy:35)
    at org.forgerock.migrator.ConfigLoader$loadConfig.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
    at org.forgerock.migrator.processor.ProcessorFactory.getProcessor(ProcessorFactory.groovy:42)
    at org.forgerock.migrator.processor.ProcessorFactory$getProcessor.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
    at org.forgerock.migrator.Migration.main(Migration.groovy:35)

Groovy のバージョンが 3.0.1 であることを確認しました。また、これをJava 8および11で実行してみました。提案をいただければ幸いです。ありがとう。

アップデート:

Groovy 3.0.1 でコードを実行する方法は次のとおりです。

ここに画像の説明を入力

4

1 に答える 1