从groovy调用java代码的问题

时间:2013-08-01 15:13:09

标签: java groovy

我有一个groovy脚本source.groovy

#!/usr/bin/env runner
import groovy.sql.Sql
import my.package.MyJavaClass
def String NL = System.getProperty('line.separator')

我使用参数运行groovy:

groovy --classpath C:/Projects/myproject/build/classes source.groovy

其中classes是输出文件夹,其中ant放置编译的java代码。 但groovy失败并出现错误

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
C:\Projects\myproject\src\groovy\source.groovy: 12: unable to resolve class my.package.MyJavaClass
 @ line 12, column 1.
   import my.package.MyJavaClass
   ^

1 error

我应该设置任何其他参数来从groovy导入java文件吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

是的,给定以下目录结构:

.
|-- build
|     |-- classes
|           |-- org
|                 |-- example
|                       |-- Test.class
|-- source.groovy

Test.class

构建Test.java的位置
package org.example ;

public class Test {
    public String getName() {
        return "tim_yates" ;
    }
}

source.groovy是:

import org.example.Test

println new Test().getName()
println new Test().name

然后,运行:

groovy -cp build/classes source.groovy

打印:

tim_yates
tim_yates

你得到相同的结果吗?

答案 1 :(得分:0)

运行groovy脚本时,需要在所有-D选项之前路径classpath(-cp)参数。否则,它会被忽略。