如何使用Java列出当前包中的所有类名?

时间:2010-03-03 18:15:45

标签: java class list package names

在我的Java项目中,我需要列出当前包中的所有类名,我通常以两种不同的模式运行我的应用程序:< 1>来自NetBeans,< 2>来自NetBeans打包的可执行jar文件。

我的问题是:如何编写我的程序,以便无论它运行的是哪种模式,它都可以列出我的应用程序中的所有类名。因为当我在NetBeans模式下运行时,我可以查看src /目录以列出类名,但是当在另一台机器上以打包的可执行jar文件模式运行时,src / dir不存在,所以如果在我的程序我尝试列出jar条目并找到这样的类名,它在NetBeans中运行时不起作用,因为它还没有jared。

我知道我可以尝试检测它运行的模式并以不同的方式处理,但有没有更好的方法来执行它而不知道它在哪个模式下运行?


我想知道以下方法是否可以解决我的问题:

http://snippets.dzone.com/posts/show/4831

我试过:getClasses(“。”)获取当前包的类,它不起作用,为什么?

2 个答案:

答案 0 :(得分:0)

如果您没有使用任何动态类加载器,则可以搜索类路径,并为每个条目搜索目录或JAR文件。

答案 1 :(得分:0)

您无法分辨包中的哪些类。这是因为每个人都可以在您的包中添加其他类(例如从其他jar文件中添加)。

然而,java API中有一些函数可以查看jar文件。它并不完全独立于奔跑的方式。