2010-10-20 153 views
2

我必須通過Java Webstart部署Java應用程序。 Webstart下載所需的應用程序jar和庫jar,然後在下載完所有內容之後,應用程序啓動前會有50秒的延遲。java webstart極其緩慢

在計算機上直接運行jar幾乎立即加載,所以它不是導致問題的應用程序jar。

我在測試機器上安裝了Java 6 update 22。

任何人有任何想法如何我可以加快速度或可能導致問題?

回答

0

在目標機器上是否有任何病毒掃描程序處於活動狀態?如果是這樣,請嘗試暫時禁用它們。我發現某些蘇格蘭品牌的病毒掃描程序會多次造成類似問題...

+0

嘗試在幾臺機器,Windows,Ubuntu的,有和沒有病毒掃描儀,同樣的問題 – johnnyx 2010-10-20 18:00:07

0

在Java控制檯中,您可以在50秒內創建多個線程轉儲。它應該給你提示你的應用程序掛起的提示。

我認爲這是創建一些套接字到服務器的名稱解析問題。但沒有線程轉儲和任何想法你的應用程序正在做什麼,它只是在水晶球看。

+0

我檢查了Java控制檯,Java webstart行事非常怪異,所有這些持續下載,緩存,刪除,它說50秒找不到,然後再次下載所有的罐子,並重復這一遍又一遍,直到應用程序啓動的某個時刻。我有一種預感,它不喜歡用於在服務器上簽名的自簽名安全證書。它使用相同的證書並且現在完成了超過7個月的完美工作。 – johnnyx 2010-10-20 21:07:17

+0

jar文件是否保存在Java緩存中?你可以在Java配置中使用它。另外,如果Java從緩存中的jar中驗證證書,則會打印一些調試信息。你可以在這裏發佈嗎? – Horcrux7 2010-10-22 17:42:42

0

問題似乎是由一些額外的圖書館罐子引起的,我一直在與主應用程序罐子一起加載(allthough所有的都簽署了相同的)。 我在原始問題中忘記提到的是,罐子是由一個php腳本來提供的,而不是直接從一個url到它們在服務器上的位置。 我仍然不清楚爲什麼發生這個問題(系統幾個月來一直這樣工作)。我認爲在新的java webstart版本中安全檢查的一些問題可能觸發了它。直接鏈接jnlp中的所有庫jar,並僅通過php腳本(僅限客戶端訪問該庫)來保留主應用程序jar,從而解決了問題。 謝謝大家的回覆。

0

當我自籤我的罐子時,我注意到有一個警告,證書將在6個月內過期。這符合工作良好的症狀(可能6個月?),然後窒息。

+0

自簽名證書可以在證書頒發時定義的有效期內生成。已生成。有關詳細信息,請參閱相關工具的JavaDocs。 – 2011-03-25 14:58:43

1

我也看到了這50秒。在我注意到許多調試代碼輸入到我的代碼中後,類加載或訪問IO(保存文件)等任務都是原因,但是我繞過的任何地方,我都會看到移動到下一步的50秒。

目前還沒有針對該問題的解決方案。 我正在使用Java 6更新31和那些外部jar:Java FX,JXTA,JMF。非他們似乎與問題直接相關。

+0

你能發佈更多信息和代碼嗎? – thejartender 2012-05-02 13:54:16

1

我可能是錯的,並且很難說沒有爲您的啓動提供完整的跟蹤和調試日誌,但這可能是由於證書驗證過程。

嘗試在Java控制面板中禁用它們中的一些,看看事情是怎麼回事(不是說你應該,只是說這會解釋你的延遲,並且你應該接受它)。