簡體   English   中英

如何確保類加載器可以訪問臨時jar文件

[英]how to make sure that the temporary jar file is accessible by the classloader

我有一個使用URLCLassLoader的自定義jar類加載器。 我必須從數據庫讀取jar內容並加載它們。 有幾個與此有關的問題。

  1. 我可以以某種方式從字節流中加載所有類,而不是先從數據庫中將jar內容保存到臨時文件,然后將file:// URL提供給URL類加載器嗎?

  2. 如果對上述問題的回答是“是”,則類加載器將確保立即從字節流中讀取所有類文件和資源,以避免以后發生ClassNotFoundError。

  3. 如果答案是Q1。 沒有。 然后按照我的方法,我從數據庫字節流中創建了一個臨時 .jar,並為URLClassloader指定了file:// URL。 URLClassloader是否確保該URL上的臨時文件在使用之前不會被破壞,以避免ClassNotFoundException?

也歡迎對上述總體問題有任何其他解決方案。 提前致謝。

您可以使用自己的URLStreamHandler構造一個URL 但是, URLClassLoader常規實現會將內容保存到臨時文件並使用JarFile API。

如果創建一個臨時文件,則在UNIX系統上,您應該能夠在打開后將其刪除。 在Windows上,您需要保留它,直到完成類加載器為止。 在Java SE 7中,您可以關閉URLClassLoader

暫無
暫無

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

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