0

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

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

我知道我可以尝试检测它在哪种模式下运行并以不同的方式处理,但是有没有更好的方法可以在不知道它在哪种模式下运行的情况下做到这一点?


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

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

我试过: getClasses(".") 来获取当前包的类,它没有用,为什么?

坦率

4

2 回答 2

0

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

然而,java API 中有一些函数可以查看 jar 文件。不过,它不会完全独立于运行方式。

于 2010-03-03T18:22:14.147 回答
0

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

于 2010-03-03T18:20:42.650 回答