在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 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编写
# 1 楼答案
这不是代码引发的错误。这是IntelliJ抛出的一个错误,它试图编译。将groovy文件转换为。类文件
因为您希望在运行时解析并运行这个groovy文件,所以不应该关心这个错误。或者更确切地说,为了避免它,你不应该把。groovy文件位于IntelliJ项目中标记为源目录的目录中,这样IntelliJ就不会试图编译它