gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:51:04 27 4
gpt4 key购买 nike

我正在做一个项目,一个要求是如果 main 方法的第二个参数以“/”(对于 linux)开头,它应该将其视为绝对路径(不是问题),但如果它不以“/”开头,它应该获取类的当前工作路径,并将给定的参数附加到它上面。

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

问题是,这只给了我存储包的目录 - 即,如果我有一个存储在“.../project/this/is/package/name”中的类,它只会给我 "/project/"并忽略实际 .class 文件 所在的包名。

有什么建议吗?

编辑:这是从练习描述中摘录的解释

sourcedir can be either absolute (starting with “/”) or relative to where we run the program from

sourcedir 是 main 方法的给定参数。我怎样才能找到那条路?

最佳答案

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

请注意,包/类名(“a.b.C”)与 .class 文件的路径(a/b/C.class)不同,使用包名/类名派生路径通常是不好的做法。类文件/包的集合可以在多个不同的类路径中,可以是目录,也可以是jar文件。

关于java - 如何在Java中获取当前类名,包括包名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729197/

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