有沒有什麼方法可以知道某個特定的JVM是否可以訪問,然後拋出一個ClassNotFoundException
,這樣我們就可以跳過該類的訪問,並且可以在運行時使用替代類。如何知道JVM是否可以訪問某個特定的類?
0
A
回答
1
沒有人提到這一點,因爲在那樣的問題,抓住ClassCastException異常確實是最好的辦法......但是......
如果你想要做的是檢查的.class文件的存在classpath然後嘗試抓取類作爲資源可能工作。
URL u = getClass().getResource("/java/util/List.class");
的ClassLoader的是,無論出於何種原因,不要從可達資源加載它們的類將意味着類不會被發現,但大多數標準的類加載器將讓這項工作。我提到它是因爲當它工作時,你可以添加能夠精確地查看.class文件在磁盤上的位置。
+0
另請注意,這隻會檢查類文件的存在。它可以存在並且仍然是無法加載的(例如,當沒有找到該類所需的類時)。 – 2010-01-24 11:04:43
3
1
我想你應該在ClassNotFoundException異常的異常處理程序中實現解決方案。
由於您想要檢測該類是否在運行時可以訪問,因此在執行程序之前無法找到它。
0
不可能要求類加載器或調用Class.forName()而不會收到異常,但如果僅在初始化期間發生,則不會造成損害。 唯一的可能性是檢查文件系統中db-jar的類路徑。 但是,這對於很少(或沒有)利益來說工作太多。
相關問題
- 1. 如何知道某個類是否可以用作靜態類?
- 2. 如何知道某個類是否符合某個特定的KVO?
- 3. 如何知道某個特定的內核是否基於linux?
- 4. 訪問某個類的特定實例
- 5. 是否知道索引是否用於某個特定的sql查詢
- 6. 如何知道某個類是否映射爲Hibernate實體?
- 7. Jena - 如何知道某個特定資源是否在模型中?
- 8. Java:如何限制某個方法對特定類的訪問?
- 9. 在Java中,是否有可能知道某個類是否已被加載?
- 10. 如何知道Octave是否可以完全訪問64位內存範圍
- 11. 如何確定某個類是否裝飾了特定屬性
- 12. 如何訪問這個特定的類?
- 13. 如何知道某個特定函數在gdb中的文件?
- 14. 如何檢查某個類的實例是否可以訪問另一個類中的方法?
- 15. 是否可以隱藏某個特定用戶組的內容?
- 16. 如何知道服務器是否接受特定類型的內容類型?
- 17. 如何知道我是否訪問ASM中的匿名課程?
- 18. 如何測試某個類的實例是否是特定的泛型類型?
- 19. 是否可以判斷某個javascript代碼是否調用特定的函數?
- 20. 如何知道選定的文本是一個特定的div
- 21. 如何知道隊列中的特定任務是否完成?
- 22. 我如何知道切換到特定的VisualState是否結束?
- 23. 如何知道特定的optarg選項是否通過c
- 24. 如何檢查某個特定元素是否具有某個類?
- 25. 是否可以拒絕從特定程序訪問SQL Server?
- 26. 你如何知道CA是否可信?
- 27. 如何知道url是否可用?
- 28. 如何知道fastcgi_finish_request()是否可用?
- 29. 是否有可能知道我的訪客是否登錄Facebook?
- 30. 我如何知道它是否保存以再次訪問Fragment的ChildFragmentManager?
你不能只抓住'ClassNotFoundException'嗎?但是我認爲如果你這樣做的話你會遇到一些更深層次的架構問題。看看谷歌Guice(http://code.google.com/p/google-guice/)或Spring IoC(http://www.devshed.com/c/a/Java/The-Spring-Framework-Understanding- IoC /)......你可能會發現它們非常有幫助。 – 2010-01-21 17:13:48