如何在Java中获取当前的类名,包括包名?

我正在研究一个项目,一个要求是,如果main方法的第二个参数以“ /

开头(对于Linux),则应将其视为绝对路径(不是问题),但如果它不是以“”开头/”,则它应获取该类的 当前工作路径 ,并将其附加给定的参数。

我可以通过几种方式获取类名:System.getProperty("java.class.path")new

File(".")getCanonicalPath(),等等。

问题是,这只会给我提供存储包的目录-即,如果我有一个存储在“ .../project/this/is/package/name”中的类,它将只给我“

/project/”,而忽略了实际.class files存在的包名称。

有什么建议?

编辑:这是从练习说明中得到的解释

sourcedir可以是绝对的(以“ /”开头),也可以是相对于我们从中运行程序的位置

sourcedir是main方法的给定参数。我如何找到那条路?

回答:

使用this.getClass().getCanonicalName()来获得完整的类名。

请注意,程序包/类名(“ abC”)与.class文件(a / b /

C.class)的路径不同,并且使用程序包名/类名派生路径通常是不好的做法。类文件/软件包的集合可以位于多个不同的类路径中,这些路径可以是目录或jar文件。

以上是 如何在Java中获取当前的类名,包括包名? 的全部内容, 来源链接: utcz.com/qa/432636.html

回到顶部