gpt4 book ai didi

java - 如何在cli中获取默认应用程序名称?

转载 作者:行者123 更新时间:2023-12-02 02:39:17 25 4
gpt4 key购买 nike

我想创建一个在启动时显示应用程序名称的框架。针对命令行界面应用程序。

问题:如何以通用方式获取这样的应用程序名称?

例如 spring 提供了一个属性,但默认情况下没有设置:

@Value("${spring.application.name}")
private String appname;

而且我不想显式设置该属性。寻找某种“默认应用程序名称”。

在 Java EE 容器中还有以下选项:

String myApplicationName = (String) initialContext.lookup("java:app/AppName");  

但是 CLI 应用程序怎么样?如何获得某种通用应用程序名称?

最佳答案

如果我正确解释了你的问题,你能得到的最接近的是:

  1. 查找哪个类正在运行public static void main(String [] args)方法
  2. 获取其simpleName
  3. 将上述名称存储到系统属性中

为此,您有两个选择:

  • 调用Thread.currentThread().getStackTrace(),并检查其尾部元素。但这也必须在主线程中执行,否则您将无法检索正确的 StackTraceElement;
  • 调用 Thread:getAllStackTraces() ,并解析整个映射以识别主线程,获取相应的值,并选择其最后一个 StackTraceElement

一旦有了StackTraceElement,您就可以调用 StackTraceElement:getClassName()这将返回类似的内容

scala.tools.nsc.MainGenericRunner

拆分字符串,将其保存到系统属性中,然后就可以开始了。

希望对您有帮助。

关于java - 如何在cli中获取默认应用程序名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45755773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com