java - 从 groovy 调用 java 代码的问题

标签 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 文件吗? 谢谢!

最佳答案

正确,给定以下目录结构:

.
|-- 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

你得到同样的结果吗?

关于java - 从 groovy 调用 java 代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997931/

相关文章:

java - 加载和分析海量数据

grails - 如何在多个 grails/groovy 版本中管理开发?

bash - 如何从 Jenkins 管道 Groovy 脚本调用资源文件中定义的 bash 函数?

java - 将 log4j2 输出附加到 TextArea

java - Java 中将文本文件读取到 HashMap

java - 分成单独的数组

java - Groovy:没有方法签名:静态 java.lang.String.ValueOf() 适用于参数类型:(java.lang.String) 值:[1572245927833]

java - 如何在Gradle插件中编写Test for SourceSets block

java - 动态生成的 java 字节码是否需要任何优化?

java - 将不透明度从 0.0 0.1 .. 更改为 1.0 以创建动画效果