1

すべて: ここで問題に直面しています。私のアプリはいくつかの jar ファイルとその他のファイルで構成されており、それらはすべて 1 つのディレクトリに配置されています。自動更新機能を実装する予定です。アプリは、サーバーに新しいバージョンがあることを認識すると、zip ファイルを一時ディレクトリにダウンロードします。ダウンロード後、インストールするかどうかを顧客に尋ねます。はいの場合、アプリは終了し、zip ファイルを解凍して、元のディレクトリ内のすべてのファイルを上書きする必要があります。今私は疑問に思っています:

ファイルを解凍してディレクトリを上書きするにはどうすればよいですか? スクリプトを作成しますか (つまり、Windows 用のバットと他のプラットフォーム用のシェルを作成する必要があります)。それを行うためのJavaクラスを作成しますか?

終了後にこのスクリプト/Java クラスを開始するにはどうすればよいですか?

ジョブが完了したら、インストーラーを削除するにはどうすればよいですか? 一時ディレクトリに保管し、新しいバージョンのアプリの起動時にチェックアウトしますか?


後のコメントから:

JWSが良い選択であることは知っていますが、「上司が拒否した」という理由で使用できません。

4

2 に答える 2

3

いくつかのアプローチが考えられます。アプリケーションはクロスプラットフォームであると言うので、更新にはJavaを使用するのが賢明です。

更新プロセスを処理する小さなjarファイルを作成できます。これは、最初のアプリケーションの一部である可能性があり(更新されないことを前提としています)、更新パッケージの一部である可能性があります(その後、更新することもできます)。

したがって、アプリケーションはzipをダウンロードし、一時ディレクトリに解凍してアップデータを起動してから終了します。アップデータは、古いjarの上に新しいjarをコピーします。


それでも、車輪の再発明をしないほうがよいでしょう。JWSの使用を検討してください。JWSはより多くの機能を提供し、実装に必要な労力が少なくて済みます。JWSを否定する正当な理由があるに違いありません。JWSを使用する利点を説明して、上司を説得する必要があります。

于 2012-05-05T06:45:57.830 に答える
3

アプリ以来。GUI があり (Swing タグで判断)、Java Web Startを使用してデプロイします。

Java Web Start (JWS) は、リッチ クライアント (Swing、AWT、SWT) デスクトップ アプリケーションをネットワークまたはインターネット リンクから直接起動するために使用される Oracle Corporation のテクノロジです。Java をサポートするプラットフォームの「ワンクリック」インストールを提供します。

JWS は、スプラッシュ スクリーン、デスクトップ統合、ファイルの関連付け、自動更新 (遅延ダウンロードやプログラムによる更新の制御を含む)、プラットフォーム、アーキテクチャまたは Java バージョン、構成によるネイティブおよびその他のリソースのダウンロードの分割など、多くの魅力的な機能を提供します。ランタイム環境 (最小 J2SE バージョン、ランタイム オプション、RAM など)、拡張機能を使用した共通リソースの簡単な管理..

于 2012-05-04T05:47:39.493 に答える