【问题标题】:get path to groovy source file at runtime在运行时获取 groovy 源文件的路径
【发布时间】:2012-08-11 02:12:31
【问题描述】:

给定以下目录结构:

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

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

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

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

【问题讨论】:

标签: groovy groovy-console


【解决方案1】:

嗯,解决方案在 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)

【讨论】:

  • ...嗯,File(".").absolutePath 给了我“C:\Users\userNameHere\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Groovy\。”并且解决方法也不起作用,真可惜:-(
  • 你不是通过 cmd 运行 groovy 吗?
  • goovy 控制台,会有什么不同吗?
  • 我通过我的 shell 运行它,而不是 groovyconsole,也许这就是问题所在:它最终得到了 groovyconsole 的路径而不是脚本
猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2018-10-14
  • 2022-07-22
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
相关资源
最近更新 更多