簡體   English   中英

即使將類放在classpath目錄中,也會重復ClassNotFoundException

[英]Repeats ClassNotFoundException even after class has been put in classpath directory

我知道類是在Java代碼中首次使用時加載的。 我在運行Java代碼的過程中傳遞了類路徑。

流程是:類>>主要>>新線程>>調用類構造函數>>線程運行代碼>>嘗試創建不存在的類的對象>>捕獲ClassNotFoundException >>手動將不存在的類手動放入類路徑>>再次嘗試創建該不存在的類的對象>>仍然拋出ClassNotFoundException

一旦發生ClassNotFoundException,我將所需的.class文件放在classpath目錄中,並且不想重新啟動程序。 發生ClassNotFoundException之后,當我從Main啟動新線程並按照流程進行操作時,它工作正常。 但是當我停留在同一線程時,效果不佳。

我的程序在運行時如何重新獲取類路徑類文件?

每個線程都有自己的類加載器,可以使用Thread.currentThread().getContextClassLoader()進行訪問。 由於第一個線程的類加載器中沒有該類,因此將引發ClassNotFoundException。 即使您手動將所需的.class文件復制到classpath目錄中,該線程也不知道它。 這是因為除非重新啟動程序或創建新線程,否則不會重新加載類。

您提到了:

捕獲ClassNotFoundException >>手動將不存在的類放在classpath中

捕獲ClassNotFoundException之后,是否將當前線程置於睡眠狀態,直到復制了丟失的.class文件? 您是如何處理的?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM