2012-05-04 1 views
1

전체 Java EE 웹 응용 프로그램을 포함하는 설치 프로그램을 만드는 방법이 있습니까? 최종 사용자는 전체 프로덕션 환경을 설치하지 않고도 단일 설치 프로그램 만 실행해야합니까?단일 설치 프로그램에서 Java EE 웹 응용 프로그램의 설치 프로그램을 만드는 방법은 무엇입니까?

내가하려는 것은 JDK + Tomcat의 설치를 저장하는 것입니다. 더 나은 해결책이 있다면 제공해주십시오. 웹 응용 프로그램이 하나의 WAR 파일이며, 당신이 어떤 서블릿 2.4 컨테이너를 사용할 수있는 경우

+0

Tomcat을 삽입 하시겠습니까? –

+0

@PaulVargas Tomcat 또는 임의의 서블릿 컨테이너. – MauroPorrasP

답변

1

가장 간단한 방법은 필요한 모든 파일 (Tomcat 및 JDK)을 사용하여 압축 파일을 만드는 것입니다. 파일을 압축 해제하면 Tomcat을 시작하는 명령이나 필요한 것을 실행할 수 있습니다. Tomcat에 대한 경로와 JDK에 대한 경로는 원래 환경과 동일한이되도록 으로 간주해야합니다.

Winrar은 실행 파일을 생성 할 수 있으며 추출이 끝나면 명령을 실행할 수 있음을 확인했습니다. (새로운 프로그램을 설치할 때 이것을 보았습니까? 먼저 압축을 풀고 설치하십시오.) Windows에서 최소한입니다. 다른 라이브러리 나 프로그램은 Winrar와 같은 것을 생성합니다.

+0

다음은 누군가가 https://gist.github.com/2599881을 필요로 할 때 사용했던 .bat입니다. – MauroPorrasP

0

가, 다음은 윈스턴 컨테이너에 내장 된 사용을 고려 :

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

이제 당신의 문제를 감소 설치 프로그램이 많은 단일 실행 가능 JAR 선택할 수있는 것은 실제 상황에 따라 다릅니다.

+0

하지만 여전히 JRE/JDK를 설치해야합니다. 맞습니까? – MauroPorrasP

+0

처리 할 수있는 설치 프로그램을 사용하십시오. –

+0

http://www.advancedinstaller.com/ 만 찾았지만 무료는 아닙니다. 모든 오픈 소스 제안? – MauroPorrasP

1

하나의 설치 편의의 모양을 줄 수 있지만 그것을 사용 사례의 수가 문제가 될 시작할 수 있습니다 :

  • 톰캣의 JDK 또는 다른 구성 요소는 보안을 해결하기 위해 업그레이드되어야 할 때 발행물. 최종 사용자가 별도의 설치 관리자로이를 수행하는 것이 더 쉽고 업데이트 된 비트로 새 설치 프로그램을 만들 필요가 없습니다.
  • 일부 사용자는 번들 한 응용 프로그램 서버에서 다른 응용 프로그램 서버로 응용 프로그램을 실행하려고 할 수 있습니다.
  • 모든 응용 프로그램이 이런 짓을하면
  • , 사용자가 하나 개의 컨테이너가 모든 응용 프로그램 JVM을 모두 설치하고 Tomcat이 사소한 설치 이후, 나는 멋진하여 응용 프로그램을 운송 권 해드립니다

위해 설치 + 설치 한 JDK로 끝날 것입니다, 단일 패키지가 아닌 명확한 설치 지침. YMMV.

3

Windows 환경에서는 다음과 같이 설치 프로그램을 만들 수 있습니다. Linux 환경에서 쉘 스크립트를 만들 때와 마찬가지로 준비 할 수 있습니다.

1, 패키지의 S/W의 바이너리 배포판 (예를 들어, PostgreSQL을, 부두, JRE 등)

2, 부두의 웹 어플리케이션

3에 war 파일을 넣어 내부 데이터 폴더를 생성 포스트 그레스

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, 서비스를 시작하기 위해 배치 파일을 만듭니다. 예를 들어 "시작.다음과 같이 방망이 서비스 바탕 화면 바로 가기를

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 "app_shortcut.vbs".

REM start the database service 

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

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

6, 당신은 예를 들어 다음과 같이 응용 프로그램 바로 가기를 만들 수 있습니다 "시작 :

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) 
관련 문제