1

Java EE Webアプリ全体を含むインストーラーを作成する方法はありますか?最終ユーザーは、実稼働環境全体をインストールすることなく、単一のインストーラーを実行するだけで済みますか?

私がやろうとしているのは、JDK + Tomcatのインストールを保存することです。より良い解決策がある場合は、それを提供してください。

4

4 に答える 4

3

Windows環境の場合、Linux環境用のシェルスクリプトを作成するのと同じように、次のようにインストーラーを作成できます。

1、s / wのバイナリ分布をパッケージ化します(例:postgresql、jetty、jreなど)。

2、warファイルをjettywebappsに入れます

3、postgres内にデータフォルダを作成します

4、バッチファイルを使用してさまざまな環境変数と初期化を設定します。私の場合、次の「install.bat」ファイルを作成しました。

REM set jdk environment
PATH=%~dp0Java\jre6\bin;%~dp0Java\jre6\lib;%~dp0pgsql\bin;%PATH%
setx PATH "%PATH%"

REM set postgres environment
SETX PGDATA "%~dp0pgsql\data"
SETX PGDATABASE postgres
SETX PGUSER postgres
SETX PGPORT 5432
SETX PGLOCALEDIR "%~dp0pgsql\share\locale"

REM initdb initialize the postgresql initialization properties
"%~dp0pgsql\bin\initdb" -D "%~dp0pgsql\data" -U postgres -A trust

REM put the temp.vbs script into startup
cscript //NoLogo //B "%~dp0start_startup_shortcut.vbs"
cscript //NoLogo //B "%~dp0start_desktop_shortcut.vbs"
cscript //NoLogo //B "%~dp0app_shortcut.vbs"
REM start the database service
"%~dp0pgsql\bin\pg_ctl" -D "%~dp0pgsql\data" start

timeout /T 10

"%~dp0pgsql\bin\createdb.exe" -U postgres dbName
"%~dp0pgsql\bin\psql.exe" -U postgres -d dbName -f "%~dp0backup.sql"

REM java -DSTART="%~dp0jetty8\start.ini" -jar "%~dp0jetty8\start.jar"

REM start the jetty server
java -Djetty.home="%~dp0jetty8" -jar "%~dp0jetty8\start.jar" > pb_log.txt


pause

5、サービスを開始するためのバッチファイルを作成します。例:「start.bat」

REM start the database service

"%~dp0pgsql\bin\pg_ctl" -D "%~dp0pgsql\data" start

java -Djetty.home="%~dp0jetty8" -jar "%~dp0jetty8\start.jar"

6、次のようにアプリケーションのショートカットを作成できます。例:「app_shortcut.vbs」

Dim FileName
FileName = "projectName"

Set wsShell= CreateObject("WScript.Shell")

Set wshSysEnv = wsShell.Environment("PROCESS")

sMyHomePath = wshSysEnv("HOMEPATH")

Set shortcut =
wsShell.CreateShortcut(CreateObject("WScript.Shell").SpecialFolders("Desktop")& + "\" + 
FileName + ".lnk")

shortcut.Description = "Start projectName"

currentDirectory = left(WScript.ScriptFullName,
(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))

shortcut.TargetPath = currentDirectory + "projectName.bat"

shortcut.Arguments = "/Arguments:Shortcut"

shortcut.Save

7、次のようにサービスデスクトップショートカットを開始します。

Dim FileName
FileName = "Start projectName Server"

Set wsShell= CreateObject("WScript.Shell")

Set wshSysEnv = wsShell.Environment("PROCESS")

sMyHomePath = wshSysEnv("HOMEPATH")

Set shortcut = 
wsShell.CreateShortcut(CreateObject("WScript.Shell").SpecialFolders("Desktop")& + "\" + 
FileName + ".lnk")

shortcut.Description = "Start projectName"

currentDirectory = left(WScript.ScriptFullName,
(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))

shortcut.TargetPath = currentDirectory + "start.bat"

shortcut.Arguments = "/Arguments:Shortcut"

shortcut.Save

8、アプリケーションバッチファイルを実行します

@echo off
netstat -o -n -a | findstr 0.0:9095
if %ERRORLEVEL% equ 0 (start http://localhost:9095) ELSE (echo "Please Start the Server"
pause)
于 2012-11-19T13:28:16.330 に答える
1

単一のインストーラーで便利なように見える場合もありますが、多くのユースケースで問題が発生し始める可能性があります。

  • Tomcat、JDK、またはその他のコンポーネントをアップグレードしてセキュリティの問題を解決する必要がある場合。エンドユーザーは個別のインストーラーを使用してこれを行う方が簡単であり、更新されたビットを使用して新しいインストーラーを作成する必要はありません。
  • 一部のユーザーは、バンドルしたものとは別のアプリサーバーでアプリケーションを実行したい場合があります
  • すべてのアプリがこれを実行した場合、ユーザーはアプリごとに1つのJDKインストールと1つのコンテナーインストールになります。

JVMのインストールとTomcatのインストールはどちらも簡単なので、単一のパッケージとしてではなく、わかりやすいインストール手順をアプリに同梱することをお勧めします。YMMV。

于 2012-05-05T09:08:13.020 に答える
1

より簡単な方法は、必要なすべてのファイル(TomcatおよびJDK)を含む圧縮ファイルを作成することです。ファイルを解凍すると、Tomcatまたは必要なものを起動するコマンドが実行される可能性があります。TomcatおよびJDKへのパスは、元の環境と同じであると見なす必要があります。

Winrarは実行可能ファイルを生成でき、抽出の最後にコマンドを実行できることを確認しました。(新しいプログラムをインストールするときにこれを見たことがありますか?最初に解凍してからインストールします。)これは少なくともWindowsでは。他のライブラリまたはプログラムは、Winrarのようなものを生成する可能性があります。

于 2012-05-04T22:57:14.663 に答える
0

Webアプリケーションが単一のWARファイルであり、任意のサーブレット2.4コンテナを使用できる場合は、Winstoneコンテナに埋め込まれたものを使用することを検討してください。

http://winstone.sourceforge.net/#embedding

これで、問題を単一の実行可能JARに減らしました。このJARには、多数のインストーラーが存在します。どちらを選択するかは、実際の状況によって異なります。

于 2012-05-04T22:19:09.430 に答える