0

JavaWebStartを介してデプロイしている単一のアプリケーションがあります。さまざまな起動シナリオ用にいくつかの異なるjnlpファイルがあります。DownloadService2を使用して、定期的に更新を確認しています。アップデートが利用可能になったら、ユーザーにプロンプ​​トを表示します。彼らが更新することを選択した場合、 Runtime.getRuntime()。exec()を使用してjavawsの新しいインスタンスを起動し、完全なjnlp urlを渡してから、System.exit(0)を渡します。事実上、これは更新/再起動サイクルを開始します。

問題は、いくつかのjnlpファイルの1つから開始できた可能性があるため、URLを単純にハードコーディングできないことです。BasicService.getCodeBase()からURLのhost:port部分を取得できることは知っていますが、URLのファイル部分を取得する方法はありますか?現在、argsから取得できるように、次のような「jnlp」引数をapplication-descに追加しています。

<application-desc main-class="my.main.class">
<argument>jnlp=myjnlp.jnlp</argument>
<application-desc/>

これでうまくいくと思いますが、必要以上に難しくしているのではないかと思います。ありがとう。

4

2 に答える 2

0

質問で説明されているアプローチを使用して、この問題を回避しました。より良い方法はないようです。

于 2012-06-25T22:41:51.593 に答える
0

おそらく、 DownloadServiceを使用してこの機能を提供するのが最善でしょう。

于 2010-09-16T00:34:47.630 に答える