在Java中执行groovy文件

在Java中执行groovy文件,java,groovy,Java,Groovy,我试图在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 c

我试图在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编写。

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


因为您想要的是在运行时解析并运行这个groovy文件,所以不应该关心这个错误。或者更确切地说,为了避免它,您不应该将.groovy文件放在IntelliJ项目中标记为源目录的目录中,这样IntelliJ就不会试图编译它。

您是如何编译它的?什么是
envHealth
应该是(我在任何地方都看不到它的引用)嗨,我在intellij ide中编译。对不起,我在胡闹,envHeath应该是类名(testClass),在我的帖子中也做了修改。我理解。你有我可以测试的groovy脚本/java程序的例子吗。(我做了您所说的更改,但仍有错误)。非常感谢。不,我没有。编辑您的问题,说明您做了什么,并发布准确完整的错误消息。或者更好的是,问另一个问题,因为这个问题已经得到了回答。我将提出一个新问题。谢谢