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/

相关文章:

android - 如何在构建过程中正确生成 XML 资源文件?

groovy - 跨越多行时在 Groovy 中省略括号?

json - Groovy JsonBuilder 在 toString() 时的奇怪行为

rest - Gradle 脚本要在没有任何 3rd 方插件的情况下调用 REST Web 服务,有什么指示吗?

grails - g:formatDate与java.sql.Date类实例有关的问题

model-view-controller - Grails-路径中的用户名

mysql - 为什么 DriverManager.getConnection() 查找在 GroovyConsole 中失败?

jenkins - 在 Groovy 中使用分隔符拆分字符串并避免 IndexOutOfBoundsException

java - 如何知道 Groovy 控制台窗口已关闭

ruby-on-rails - 列出子类在 Ruby 脚本/控制台中不起作用?