You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy中打印脚本所在目录的上一级路径?

在Groovy中获取脚本所在目录的上一级路径

问题分析

你当前的代码存在几个关键问题:

  • new File("/../")是基于当前工作目录的上级路径,并非脚本自身所在目录的上级,结果会和预期不符
  • logger.debug语句存在括号不匹配的语法错误
  • 没有获取脚本自身的文件位置,无法定位到目标路径

正确实现方式

要获取脚本所在目录的上一级路径,核心是先定位到脚本自身的文件对象,再逐层向上获取父目录。

完整示例代码

// 获取当前脚本的文件对象
def scriptFile = new File(this.class.protectionDomain.codeSource.location.path)
// 获取脚本所在的直接目录
def scriptDir = scriptFile.parentFile
// 获取该目录的上一级目录
def targetDir = scriptDir.parentFile

// 打印结果(若使用logger需确保logger已初始化)
println "目标路径:${targetDir.canonicalPath}"
// logger.debug(String.format("[%s]", targetDir.canonicalPath))

简洁链式写法

如果不需要分步处理,也可以用链式调用简化代码:

def targetDir = new File(this.class.protectionDomain.codeSource.location.path).parentFile.parentFile
println targetDir.canonicalPath

效果验证

当你的Groovy文件位于abc/def/ghi/dummy.groovy时,运行上述脚本会输出abc/def对应的系统标准格式路径(canonicalPath会返回绝对路径)。

内容的提问来源于stack exchange,提问作者Liu Xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:57:23