Java 1.7.0u45 をインストールして以来、WebStart アプリケーションは、Windows システムでの起動に大きな遅延を示しています (他のプラットフォームは試していません)。
症状は、デスクトップ上のアプリケーション アイコンをダブルクリックした後、スプラッシュ スクリーンがすぐに表示され、(以前と同じように) しばらく留まってから閉じることです。この後、約 1 分の遅延があります。そして最後に、アプリケーション ウィンドウが開き、すべてが魅力的に機能します。
私たちのアプリケーションは、Java 1.7.0u25 まで問題なく動作しました。Java 1.7.0u40 は、問題が発生した最初のバージョンです。
私たちのアプリは、単一の (実行可能な) jar ファイルから構築されています。最も重要な部分は、jar 内にあるシリアル ポート アクセス用のネイティブ クラスです。この投稿の最後に jnlp ファイルを追加しました。
遅延の原因を突き止めようとしました。
バージョンについては、 http: //docs.oracle.com/javase/7/docs/technotes/guides/jweb/enhancements-7.html にある Java WebStart リリース ノートを確認してください。
私たちが言える限り、動作を引き起こす可能性のあるものは何もありません. 新しいマニフェスト エントリ (アクセス許可、コードベース、アプリケーション名) があることに気付きました。これらが追加されました。
Googleとstackoverflow全体を見ました。
同様の問題を抱えている人もいますが、解決策はありません。多くの場合、jar ファイルのダウンロードやダウンロードの繰り返しに問題があります。これは私たちの問題ではないようです。
頑丈なツールを使用
このアプリがその時間内に何をするかを知りたかったのです。そこで、sysinternals と wireshark のプロセス エクスプローラーとプロセス モニターを使用しました。待機時間中に、プロセスが「vip1.g-anycast1.cachefly.net」(205.234.175.175) および 93.184.220.29 と IP 経由で通信しようとすることがわかりました。後者は証明書サーバーのようですが、キャッシュフライが何であるかはよくわかりませんでした。どちらの場合も、TCP syn が表示されますが、応答がなく、それ以上の通信はありません。どちらのアドレスも ping 可能です。
IP関連のものとは関係ありません:アプリケーションがダウンロードされたのではなく、キャッシュから開始され、メインが遅延の前ではなく遅延の後に呼び出されることは確かです。
これが私たちが立ち往生しているところです
これを解決する方法についてさらにアイデアはありますか?この行動を経験しているのは私たちだけですか?
Jnlp (URL は手動で作り直されていることに注意してください):
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="6.0+" codebase="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/antlocal" >
<information>
<title>TcuTerm</title>
<vendor>Development</vendor>
<icon href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/>
<icon kind="shortcut" href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/>
<icon kind="splash" href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/splash.jpg"/>
<homepage href="https://confluence.detss.corpintra.net/display/TCU/TcuTerm"/>
<offline-allowed/>
<shortcut>
<desktop/>
<menu submenu="TcuTerm"/>
</shortcut>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="TcuTerm.jar" main="true"/>
</resources>
<application-desc main-class="com.x.tcu.app.term.TcuTerminal"/>
<update check="timeout"/>
</jnlp>