groovy - 在运行时获取 groovy 源文件的路径

原文 标签 groovy groovy-console

给定以下目录结构:

/home/some/random/foler/myScript.grooy

...如何以编程方式获取脚本本身中 myScript.grooy 父目录的路径?

最终,我试图从脚本所在的同一目录中读取多个文件。

编辑:尝试在 Windows 7、Groovy 2.0.1、groovy 控制台上运行它

最佳答案

好吧,解决方案是在 Java 的 File 类中:

println new File(".").absolutePath
如果你想获取同一目录下的所有 groovy 脚本,也许你可以使用 Groovy JDK 中的其他一些工具,比如 eachFile :
def files = []
new File(".").eachFile { 
    if (it.name.endsWith(".groovy") ) files << it 
}
println files
如果你想要正在运行的脚本名称,那么你就有问题( https://issues.apache.org/jira/browse/GROOVY-1642 )
根据该 JIRA,这是当前的解决方法(并不总是有效):
URL scriptUrl = getClass().classLoader.resourceLoader
    .loadGroovySource(getClass().name)

关于groovy - 在运行时获取 groovy 源文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11958185/

相关文章:

gradle - Jacoco Gradle中的最小代码覆盖率阈值

tomcat - 在gant脚本中使用(multi lexeme)grails目标

Groovy 字符串执行与列表执行

java - `groovyConsole` 无法在带有 java 8 的 Ubuntu 18.04 上启动,如何解决?

groovyConsole 在启动时抛出 java.lang.reflect.InvocationTargetException

grails - IntelliJ IDEA 13.1上的Groovy Grape配置

dictionary - 条件 jsonpath 表达式在 groovy 脚本 jmeter 中不起作用

java - 自动化测试Geb-扩展页面或模块时出现IntelliJ错误

grails - 您如何在Grails/Spock测试中而不是在org.grails.plugins.testing.GrailsMockHttpServletResponse@62c0fcae中打印响应

groovy - 为什么我会在 GroovyConsole 中收到 MissingPropertyException?