2010-01-18 83 views
0

我的Java程序在運行時動態加載類。所有課程都位於同一個罐子裏。Java:更新jar文件時加載類

部署新的jar文件後,我有時在複製jar文件時發生錯誤(NoClassDefFoundError等)。當我下一次運行程序時,這會消失。有沒有辦法預先加載類,以便我的程序在更新jar時不受影響?

我想我可以創建所有類的實例,然後clone()它們,但也許有更好的方法?

+0

請解釋你的應用程序如何加載dinamically類,只需「Class.forName」?或者更復雜的東西來重新裝入更新的罐子?如果是這種情況,您可以進行dir重命名,以在不等待文件副本的情況下更改新的類路徑。或者也許使用你自己的類加載器(這並不難,我可以引導你) – helios 2010-01-18 21:33:19

+0

我想我可能會嘗試一個自定義的類加載器。我已經閱讀了一些文章,在此花費一些時間應該很有趣。 – AnonCow 2010-01-21 21:07:20

回答

1

即使您加載所有類,您仍可能會從資源中獲取錯誤。

如果可能,我建議部署到不同的位置。或者,如果您可以管理類加載,請將jar複製到臨時文件(例如,自動爲http URL執行)或存儲器中。