如何在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