[英]Issue with calling java code from groovy
I have a groovy script source.groovy 我有一个groovy脚本source.groovy
#!/usr/bin/env runner
import groovy.sql.Sql
import my.package.MyJavaClass
def String NL = System.getProperty('line.separator')
I run groovy with parameters: 我用参数运行groovy:
groovy --classpath C:/Projects/myproject/build/classes source.groovy
Where classes is an output folder where ant puts compiled java code. 其中classes是一个输出文件夹,ant将已编译的Java代码放入其中。 But groovy failse with error
但是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
Should I setup any additional parameters to import java files from groovy? 我是否应该设置任何其他参数以从groovy导入Java文件? Thanks!
谢谢!
Right, given the following directory structure: 正确,给定以下目录结构:
.
|-- build
| |-- classes
| |-- org
| |-- example
| |-- Test.class
|-- source.groovy
Where Test.class
is built from Test.java
: 从
Test.java
构建Test.class
地方:
package org.example ;
public class Test {
public String getName() {
return "tim_yates" ;
}
}
And source.groovy
is: 并且
source.groovy
是:
import org.example.Test
println new Test().getName()
println new Test().name
Then, running: 然后,运行:
groovy -cp build/classes source.groovy
Prints: 印刷品:
tim_yates
tim_yates
Do you get the same result? 你得到相同的结果吗?
When you run groovy script you need to path classpath (-cp) parameter before all -D options. 运行groovy脚本时,需要在所有-D选项之前先设置classpath(-cp)参数。 Otherwise, it is ignored.
否则,它将被忽略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.