2

私はJavaデスクトップアプリケーションを持っており、メインアプリケーションのインストーラーでjarとして配布しています(現在、Javaアプリケーションはインポーター/エクスポーターのみです)。ただし、jarはメインアプリケーションよりも頻繁に更新されるため、Java Web Startを介して実行することを検討しているため、起動時に個別に更新されます。

私の質問は、インストーラーでそれを配布する方法です。ユーザーがインターネットを持っていない場合は、インストーラーのjarバンドルを使用します(メインアプリケーションフォルダーにコピーします)が、起動してインターネットを使用すると、JavaWebStartで更新されます。 ?

編集: 2つのJNLPファイルをローカル起動用とオンライン起動用に作成して更新することを考えましたが、キャッシュされたjarを共有する必要があるため、2回インストールされません。これが可能。

編集、より多くの説明:

多分私はそれをあまりよく説明していません。私はネイティブアプリケーションを持っており、ダウンロードからCDを介してMSIとして配布されています。このアプリケーションでは、メインアプリケーションが他の形式にデータを交換するために使用したJavaアプリケーション(jar)を配布します。MSIは、ネイティブアプリとjarのコピーの両方をインストールします(実際にはインストールされません)。これで、ユーザーがインターネットを使用していて、新しい更新が公開された場合、完全なMSIがダウンロードされてインストールされます(インストールを更新します)。Ok?

ええと、Java Web Startを使用して、よりファッション的なアプローチでjarのみを更新したいので、jarがメインアプリから独立して実行されたときに更新されます。これには、Java Web Startとしてのみ展開する場合、ユーザーがインターネットのないコンピューターにアプリをインストールすると(たとえば、ペンドライブやCDでMSIを携帯している場合)、アプリを使用できないという問題があります。彼はインターネットを持っていないので、jarファイルをダウンロードできません。

そして今、私の質問が来たとき、MSIにjarをデプロイできますが、Java Web Startを介して実行できるため、ユーザーがインターネットを使用している場合は更新されますが、インターネットを使用していない場合でも、MSIでバンドルjarを使用できます。 ?

4

1 に答える 1

2

.. jarをMSIにデプロイできますが、Java Web Startを介して実行できるため、ユーザーがインターネットを使用している場合は更新されますが、インターネットを使用していない場合でも、MSIでバンドルjarを使用できますか?

OK、私はここで計画を立てています、これは実行可能かもしれません。

MSIは次のことができると仮定しましょう。

  • 使用可能なバージョンが見つからないか低すぎる場合は、JREをインストールしてください。JREをMSIに含める必要があります(ネットが不要になるため)。
  • JWS起動ファイルとJar(およびネイティブ..)を一時ファイルとしてローカルファイルシステムに解凍します。
  • 'IMPORT-OPTIONS'を使用してjavawsツールを起動し、コードベースをアンパックされたローカルファイルシステム内の場所に設定します。

この時点で、デスクトップアイコンとショートカットがインストールされ、プログラムを起動する準備ができているはずです。JNLPでいくつかの追加オプションを指定することが重要です。特にoffline-allowed、アプリを確実にするためです。インターネットが利用できない場合でも起動できます。

警告: MSIの経験はありません。インポートオプションの使用経験は、ビルドファイルからの呼び出し(開発中)に限定されています。

于 2012-11-07T04:20:13.220 に答える