Java EE Webアプリ全体を含むインストーラーを作成する方法はありますか?最終ユーザーは、実稼働環境全体をインストールすることなく、単一のインストーラーを実行するだけで済みますか?
私がやろうとしているのは、JDK + Tomcatのインストールを保存することです。より良い解決策がある場合は、それを提供してください。
Java EE Webアプリ全体を含むインストーラーを作成する方法はありますか?最終ユーザーは、実稼働環境全体をインストールすることなく、単一のインストーラーを実行するだけで済みますか?
私がやろうとしているのは、JDK + Tomcatのインストールを保存することです。より良い解決策がある場合は、それを提供してください。
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)
単一のインストーラーで便利なように見える場合もありますが、多くのユースケースで問題が発生し始める可能性があります。
JVMのインストールとTomcatのインストールはどちらも簡単なので、単一のパッケージとしてではなく、わかりやすいインストール手順をアプリに同梱することをお勧めします。YMMV。
より簡単な方法は、必要なすべてのファイル(TomcatおよびJDK)を含む圧縮ファイルを作成することです。ファイルを解凍すると、Tomcatまたは必要なものを起動するコマンドが実行される可能性があります。TomcatおよびJDKへのパスは、元の環境と同じであると見なす必要があります。
Winrarは実行可能ファイルを生成でき、抽出の最後にコマンドを実行できることを確認しました。(新しいプログラムをインストールするときにこれを見たことがありますか?最初に解凍してからインストールします。)これは少なくともWindowsでは。他のライブラリまたはプログラムは、Winrarのようなものを生成する可能性があります。
Webアプリケーションが単一のWARファイルであり、任意のサーブレット2.4コンテナを使用できる場合は、Winstoneコンテナに埋め込まれたものを使用することを検討してください。
http://winstone.sourceforge.net/#embedding
これで、問題を単一の実行可能JARに減らしました。このJARには、多数のインストーラーが存在します。どちらを選択するかは、実際の状況によって異なります。