2010-03-03 123 views
0

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

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

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


不知下面的办法可以解决我的问题:

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

我想:getClasses( “”),以获得当前包中的类,它没有工作,为什么?不使用任何动态类加载器可以搜索类路径,并为每个条目搜索的目录或JAR文件

弗兰克

+1

重复http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection。 – 2010-03-03 18:20:17

+0

参见http://stackoverflow.com/questions/2366733/how-to-list-source-code-file-names-at-java-run-time – trashgod 2010-03-03 19:21:43

回答

0

提供。

0

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

但是在java API中有函数来查看jar文件。它不会完全独立于跑步的方式。

相关问题