0

我正在尝试在 Java 中执行一个 .groovy 文件,但是对于 Java 和 Groovy 来说都是新手,我遇到了一些问题。我这样做是为了了解更多信息,如果有人能告诉我我做错了什么,我将不胜感激。

import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import groovy.lang.GroovyShell;

import javax.naming.Binding;
import java.io.File;

public class testClass extends GroovyShell{

    public static void main(String[] args){

        try{
            ClassLoader parent = testClass.class.getClassLoader();
            GroovyClassLoader loader = new GroovyClassLoader(parent);
            Class groovyClass = loader.parseClass(new File("src/testg.groovy"));

            GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
            Object[] args1 = {};
            groovyObject.invokeMethod("run",args1);


        }catch(Exception e) {
        System.out.println("error loading file");
             }
    }

}

我收到以下错误:

Groovyc: Cannot compile Groovy files: no Groovy library is defined for module 'Prep'
Using javac 1.7.0_09 to compile java sources
Compilation completed with 1 error and 0 warnings in 9 sec
1 error
0 warnings
Groovyc: Internal groovyc error: code 1

或者也许有人可以给我一个如何执行的例子,例如用 groovy 编写的 hello world 脚本,在 java 中。

4

1 回答 1

1

这不是您的代码引发的错误。这是 IntelliJ 抛出的错误,它试图将您的 .groovy 文件编译为 .class 文件。

由于您想要的是在运行时解析和运行这个 groovy 文件,所以您不应该关心这个错误。或者更确切地说,为避免这种情况,您不应将 .groovy 文件放在 IntelliJ 项目中标记为源目录的目录中,以免 IntelliJ 尝试编译它。

于 2013-07-23T10:31:35.863 回答