2010-03-03 84 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文件。它不會完全獨立於跑步的方式。

相關問題