WebベースのUI(Vaadinフレームワークを使用)を備えたJavaアプリケーションがあります。 ユーザーがローカルマシンでアプリを入手して実行するようにしたい。一部のユーザーは技術的にあまりできない場合がありますので、可能な限りシンプルで絶対的なものにする必要があります。WebベースのJavaアプリケーション+ Jetty + JREをエンドユーザーに配信するBKM
考えられる解決策:
アプリを起動するためにWebアプリケーション+突堤+バッチやシェルスクリプトで分配を作成します。 にもJREが含まれている可能性があります。 ユーザーストーリーは、いくつかのZIPファイルをダウンロードして解凍し、 "start.bat"または "start.sh"を実行します。このスクリプトはJettyを起動し、 "http:// localhost:8080/myapp"というURLでWebブラウザを起動します。 「JREをインストールする」や「あなたのJavaホームは何か」、「あなたのJREは古すぎます」などの魔法はありません。これは多くの技術者以外の人を恐れるでしょう。 ここでの問題:マシンにJREがない場合はどうなりますか?私はJRE(Win/Linux/MacOS用)を使って3種類のディストリビューションを作成しないようにしたいと思います。 3つのJREすべてを同じディストリビューションにパッケージングすることは、過剰なもののようです。
もう1つの方法は、Java Web Startを使用する方法です。私のアプリケーションはJWSを介してJetty JARを依存してダウンロードされ、この場合には埋め込みJettyを開始します。 ユーザーストーリー:ウェブサイトのボタンをクリックすると、アプリをローカルで起動できます。 5年前にプロキシの背後からJWSを使用することに問題があることを覚えています。依存関係をロードできませんでした。それでも問題があるかどうかはわかりません。それ以来私はJWSを使用していないので、私はそれに精通しています。 JWSのもう一つの問題は、(少なくとも初回または毎回)いつでも可能なわけではない(一部の組織はインターネットに接続できない)、アプリケーションを起動するためにインターネットに接続する必要があるということです。 AFAIK、最後のJWSはJREをまだインストールしていない場合にインストールすることを提案しているので、これはエンドユーザにとっては簡単なはずです。 これはおそらくJWS(?)の潜在的な問題のためです。
最後に、launch4jやInstallShieldなどのものですべてをパックする方法があります。うまくいけば、これらのプログラムはJREをインストールすることができ、まだ存在しないし、ヘッドレスモード(サーバ用)で実行することもできます。
これまでのところ、オプション2は、JWSが必要なことを行うことができると仮定すると、ほとんどのユーザーにとって最も簡単です。あなたはこれらの3つのソリューションを参照してください追加の落とし穴
- :
だから、私の質問は、これらのですか?
- 私の場合、どちらをお好みですか?