2010-11-21 21 views
1

Java Web Startを使用してJavaアプリケーションをデプロイしようとしていますが、問題が発生しました。私のIDE(Netbeans)を使ってアプリケーションを実行すると、稲妻が速くなります。すべてが数秒で起こります。しかし、Web Startを使って起動すると、非常に遅いです。Webアプリケーションの起動によりJavaアプリケーションが遅くなる

なぜでしょうか?

私はすべて自己署名し、JNLPで完全な権限を使用しています。

+1

2つのシナリオで異なるJVM? – aioobe

+1

特にアプリケーションについては遅いですか?それを起動しますか?それを起動した後に起こるものは? UIレンダリング?マウスが遅いですか?メニューはゆっくりと開きますか? –

+0

@ Mike-彼は明らかに発射が遅いと述べている。 – DMan

答えて

2

Java Web Startアプリケーションは、実行可能ファイルjavaを介して直接起動するよりも、常に遅く起動します。 Java Web Startがとても標準java打ち上げよりもはるかに多くをやっているので、これは次のとおりです。

  1. JWSはJNLPをダウンロード(そしておそらくJARファイル、およびその他のリソース)するためにネットワークにアクセスする
  2. JWSは、そのローカルキャッシュをチェックしていますキャッシュが空または期限が切れている場合、それはJWSが潜在的にHTTP経由でのjarファイルをダウンロードしているJARファイル
  3. をダウンロードスキップできるかどうかを確認するにはJARが、
  4. JWSはすべての単一のjarファイルの暗号的に強い署名の有効性をチェックしている

ほとんどの場合、ウェブブラウザ経由でアプリケーションを起動し、アプリケーションを事実上「無料で」更新することができます。


もう一つの可能​​性:あなたは、NetBeansを起動したときにあなたがWebStartの対を経由して起動すると、アプリケーションが異なるVMで実行されていますか?

System.getProperty("java.home") 

現在実行中のプロセスを実行しているVMを調べることができます。

同じVMの場合は、diffの2つのシナリオ間でJavaシステムのプロパティを試してみることもできます。すべてのシステムプロパティをプリントアウトしてみてください。

System.getProperties().store(System.out, ""); 

Wiresharkは、Java Web Startはネットワークの問題を診断するために使用することができます。


時にはJava ConsoleとJava Web Startのロギングは、特定のJWSの問題の診断に役立ちます。あなたはJava Control Panelを通じて、これらの機能を有効にすることができます

alt text

+1

Mike、包括的な答えに感謝します。トレースを有効にすることで、必要になったときに外部のJARがすべてダウンロードされ、スローダウンが発生することがわかりました。私の解決策は動作する単一のJARを作成することです! –

1

あなたはJavaコンソールでフル・ロギングを有効にして、Java Web Startは、デバッグ情報の印刷であるすべてのものを見ることができます。一時停止がどこで発生したのかを確認できます。これにより、問題が発生している可能性があります。

私の初期の推測では、特にポーズが30秒の倍数に非常に近い場合、DNSの問題があると思われます。

関連する問題