【问题标题】:java: find project name from within classjava:从类中查找项目名称
【发布时间】:2019-11-07 02:02:41
【问题描述】:

如何使用 java 反射或类似的方法通过类的实例来查找项目名称? 如果不是项目名称——这是我真正想要的——我能找到包名称吗?

【问题讨论】:

  • 项目名称是什么意思?您在 IDE 中看到的那个?如果你想知道包名,只要你有一个类的实例,你可以这样做:instance.getClass().getPackage()

标签: java reflection


【解决方案1】:

项目只是 IDE 使用的组织工具,因此项目名称不是类或 JVM 中包含的信息。

要获取包,请使用Class#getPackage()。然后,可以调用Package#getName() 将包作为您在代码的包声明中看到的字符串来获取。

Class<?> clazz = Application.class;
Package package = clazz.getPackage();
System.out.println(package.getName());

【讨论】:

    【解决方案2】:

    项目名称位于 IDE 的配置文件中,例如。它是 Eclipse 中的 .project 。它是一个xml文件,项目名称位于projectDescription元素的子元素名称中。

    【讨论】:

      【解决方案3】:

      Java 不知道项目名称,但通常是代码所在目录的名称。

      例如,如果您正在处理一个项目(在 Eclipse 或 Intellij 中)并且该项目位于文件夹“~/eclipse-workspace/myproject”中,那么您想要的项目名称可能是“myproject”。请注意,这不会是通用的——甚至不适用于您的开发环境之外。

      所以您可能想要的是用户目录,在这种情况下,它与项目名称一致。如果某人只有一个二进制文件(jar 或类文件),它将是执行它的位置——这可能不一样。

      但是,如果这是您想要的,请使用以下内容:

      String userDir = System.getProperty("user.dir");
      Path path = Paths.get(userDir);
      String project = path.getFileName();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 1970-01-01
        • 2018-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        相关资源
        最近更新 更多