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

Sco*_*ish 29 java groovy

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

如何找到基本执行目录?

rod*_*ion 37

试试这个:

System.getProperty("user.dir");
Run Code Online (Sandbox Code Playgroud)

  • 或者 `System.properties['user.dir']` ,使用常规语法,稍微短一些。 (4认同)

Sco*_*ish 17

以供参考:

对这个问题的接受的答案这里就是我一直在寻找.

举个例子,当调用c:\scripts\MyScript.groovyc:\users\Scott\我想知道c:\scripts\.

这是通过以下方式完成的:

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

其中scriptDir分配如下:

/c:/scripts/MyScript.groovy

  • 是的,你的问题措辞不好.你需要问"如何获得课程的位置".很高兴你找到了答案. (5认同)

Ale*_*s G 15

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

String currentDir = new File(".").getAbsolutePath()
Run Code Online (Sandbox Code Playgroud)

  • 它应该是新的File(".").getAbsoluteFile().getParent() - 这将删除尾随的"/".从路上. (5认同)
  • 该解决方法无济于事。`getAbsolutePath()` 的 javadoc 说 throws *"`SecurityException` - 如果无法访问所需的系统属性值。"* (2认同)