3

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

4

3 回答 3

8

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

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

Class<?> clazz = Application.class;
Package package = clazz.getPackage();
System.out.println(package.getName());
于 2012-06-20T00:42:16.370 回答
0

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

于 2012-06-20T03:00:01.060 回答
0

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

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

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

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

String userDir = System.getProperty("user.dir");
Path path = Paths.get(userDir);
String project = path.getFileName();
于 2019-11-06T18:02:41.990 回答