如何在groovy(或java)中查找当前的基本执行目录?

如何在groovy(或java)中查找当前的基本执行目录?,java,groovy,Java,Groovy,我有一个小脚本,我正在使用一个参数来传递当前的执行目录,但是我想让它更健壮一些 如何找到基本执行目录?试试以下方法: System.getProperty("user.dir"); 根据安全模型,如果不允许使用System.getProperty(String),则可以使用 String currentDir = new File(".").getAbsolutePath() 供参考: 这个问题的公认答案正是我想要的 例如,当从c:\users\Scott\调用c:\scripts\MySc

我有一个小脚本,我正在使用一个参数来传递当前的执行目录,但是我想让它更健壮一些

如何找到基本执行目录?

试试以下方法:

System.getProperty("user.dir");

根据安全模型,如果不允许使用
System.getProperty(String)
,则可以使用

String currentDir = new File(".").getAbsolutePath()
供参考:

这个问题的公认答案正是我想要的

例如,当从
c:\users\Scott\
调用
c:\scripts\MyScript.groovy时,我想知道
c:\scripts\

这是通过以下方式实现的:

def scriptDir=getClass().protectionDomain.codeSource.location.path

其中,scriptDir的分配方式如下:


/c:/scripts/MyScript.groovy

相关问题:谢谢Tim。我在那个问题上使用了公认的答案。这种变通方法不会有帮助。如果无法访问所需的系统属性值,
getAbsolutePath()
的javadoc会抛出“
SecurityException
”。它应该是新文件(“.”)。getAbsoluteFile().getParent()-这会从路径中删除尾随的“/”。是的,这是第一个想法,但它只给出从何处调用脚本的路径,不是脚本所在的地方(我的问题可能措辞有点混乱)。或者
System.properties['user.dir']
用groovy语法略短一些。是的,你的问题措辞不好。您需要询问“如何获取类的位置”。很高兴你找到了答案。