在我的Java项目中,我需要列出当前包中的所有类名,我通常以两种不同的模式运行我的应用程序:< 1>来自NetBeans,< 2>来自NetBeans打包的可执行jar文件。如何使用Java列出当前包中的所有类名?
我的问题是:如何编写我的程序,以便无论它运行的是哪种模式,它都可以列出我应用程序中的所有类名。因为当我在NetBeans模式下运行它时,我可以查看src /目录来列出类名,但是当在另一台机器上以打包的可执行jar文件模式运行时,src/dir不在那里,所以如果在我的程序我尝试列出jar条目并以这种方式查找类名,但在NetBeans中运行时无法工作,因为它尚未被jared。
我知道我可以尝试检测它在哪个模式下运行,并且处理方式不同,但有没有更好的方法可以在不知道它在哪个模式下运行?
不知下面的办法可以解决我的问题:
http://snippets.dzone.com/posts/show/4831
我想:getClasses( “”),以获得当前包中的类,它没有工作,为什么?不使用任何动态类加载器可以搜索类路径,并为每个条目搜索的目录或JAR文件
弗兰克
重复http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection。 – 2010-03-03 18:20:17
参见http://stackoverflow.com/questions/2366733/how-to-list-source-code-file-names-at-java-run-time – trashgod 2010-03-03 19:21:43