2009-08-18 5 views

答えて

1

Sunのkernel installer for Javaをチェックアウトしたいと思うかもしれません。かなり小さく、バックグラウンドで完全なJVMをダウンロードしてインストールします。アプリのデプロイ方法によっては、アプリを含めるだけの小ささかもしれません。私たちのアプリでは、このインストーラも大きすぎますので、現在インストールされているJREを検出し、必要があると判断した場合はカーネルインストーラをダウンロードします。

インストールシステムからいつでもhttpダウンロード(Webブラウザの外にある)を使用してカーネルインストーラを入手し、実行することができます。私たちはNSISを使用しており、このために非常にうまく動作するいくつかのhttpダウンロードライブラリがあります。 Javaの正しいバージョンを検出できるいくつかのNSISプラグインもあります。これら2つの機能の組み合わせは、常に私たちのために十分であった。

EDIT - NSISを使用している場合、here's a pluginは、インストール内からhttpまたはftp経由でファイルをダウンロードします。

ここではfull featured Java launcher using NSISです。 javaw.exeを使用して実際にアプリケーションを起動する具体的な方法は気にしませんが、JREのバージョン、UACの高度を検出し、JREインストーラをダウンロードする一般的なアプローチは妥当です。私たちは独自のプロセス名、アイコンなどを持つことができる独自のランチャーを(java.exeの代わりに)持っています。

個人的には、インストール自体にこの種の作業をすることをお勧めします。

+0

十分なはずですが、Javaカーネルインストーラをプログラムからどのようにダウンロードしますか? – Gili

+0

アプリケーションでダウンロードを開始したいですか(JVMを起動しているネイティブの.exeがあるとします)?またはインストーラによって?最も可能性の高いシナリオはインストーラを介したものです。この場合、インストールテクノロジに大きく依存します。 NSISでhttpダウンロードを行う方法のリンクを含むように答えを更新しました。異なるインストーラメカニズムを使用する場合は、同等のものを見つける必要があります。 –

1

java web startを使用して、デスクトップショートカットからアプリケーションを起動することもできます。そうした場合、Web StartフレームワークはJREをブラウザから起動した場合と同様にダウンロードしてインストールできます。

ブラウザベースのWeb Startアプリケーションとしてアプリケーションを配布する場合は、最初に起動したときにスタートメニューやデスクトップアイコンを作成するjnlpファイルのプロパティを設定できます。別の配布フォームを選択した場合は、javawsを代わりに呼び出すショートカットを手動で作成することができます。

+1

JREが最初にJava Web Startを使用する必要はありませんか? –

+0

はい、私は、デスクトップアプリケーションがJavaで開発されたと仮定しましたが、これは必ずしもそうではないことを指摘したようです。それはJavaのWebスタートが役立つことはありませんされていない場合。 – henrik

0

起動時にJSmoothを使用してJavaをチェックすると、ユーザーはこれをインストールできます。

サイレントインストールが必要な場合は、公開されていない限り、MSIバージョン(Windows用)が必要です。

関連する問題