如何从Groovy的CliBuilder获取正在运行的Command(或jar或脚本)的名称?

时间:2016-04-07 18:16:40

标签: java maven groovy command-line-interface

我使用Groovy的CliBuilder解析命令行参数,并在命令行不正确时生成用法消息。作为使用消息的一部分,我希望能够打印所用程序的实际名称(因为版本号随每个构建而变化)。我怎样才能获得所用程序的名称?

我希望能够做到这样的事情:

def cli = new CliBuilder(usage: "java -jar ${this.name} -db DBCONNECTIONFILE")

但我似乎能够获得的只是程序名称之后的参数。

也许我可以从pom中获取它,但我不明白如何从pom文件中获取它,而不是读取和解析pom。

1 个答案:

答案 0 :(得分:1)

听起来你想要获取当前正在执行的jar的名称。这包含在How to get the path of a running JAR file?

new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());

然后调用.getName()。如果您只想要路径,那么您可以使用

MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()