我有一个名为a.groovy
的文件
在a.groovy
中,我有:
println(this.class.name)
load a.groovy
(运行它)时,我看到“ Script1
”是println
的结果。
如何获取已加载文件的名称-“ a
”或“ a.groovy
?”
我尝试了以下操作:
class TrustedLib {
void Test(Class scriptClass) {
String scriptPath =
scriptClass.protectionDomain.codeSource.location.path
println(scriptPath)
}
}
这在脚本(node
)中称为:
Test(getClass())
Test
位于全局受信任的库中,因为:
protectionDomain
。 scriptPath
显示为“ /Groovy/shell
”(scriptClass
,顺带是Script1
)
注意:
如果我将Test
更改为:
class TrustedLib {
void Test() {
String scriptPath =
getClass().protectionDomain.codeSource.location.path
println(scriptPath)
}
}
THE_PATH/TrustedLib.groovy
已打印,这是正确的路径
那么,再次挫败-如何获得真实的文件名?如何获得基础类?