2008-12-20 63 views
5

我們有一個作爲applet或Java Web Start運行的大型Java應用程序。它越來越多。典型的用戶只需要一小部分類。因爲Java不知道在哪個類中可以找到它加載所有jar文件的jar文件,直到它找到類。如果它將加載一個不存在的類(例如資源包),那麼它會加載所有的jar文件。這可以在很小的帶寬上減少啓動時間。Java Applet有任何插件框架嗎?

是否有一個小框架,我們可以只在需要時才加載插件?還是更好,如果需要和背景?

當然,框架不應該延遲大尺寸的開始時間。

我認爲它應該使用URLClassLoader進行下載。

回答

0

我認爲(不JNLP我不知道)你已經使用下載屬性:

<jar href="sound.jar" download="lazy"/> 

由於在webstart沒有關於JAR內容的信息我認爲它加載所有這些類是否丟失。

雖然我從來沒有嘗試過,但有一個<package>標籤,您可以在webstart中提供一些提示,以在其中搜索類。檢查this(很短)的文件。

1

這不是對您的問題的直接回答,但是您可以通過使用Pack200來顯着減少JAR文件的大小,從而緩解下載緩慢的問題。我以前有written這個可能有多有效。

除此之外,我會同意asalamon74的建議,使用惰性下載JAR文件。

也許你可以優化JAR的順序,以便那些包含將首先加載的類的對象先出現?

2

我聽說你可以實現自定義類加載器,我已經看到了關於這個主題的教程。有了這個,你應該能夠更精確地控制下載的內容。對不起,我自己沒有嘗試過。