1. 程式人生 > >windows 打包Java web專案內容實現一鍵安裝

windows 打包Java web專案內容實現一鍵安裝



1.下載MySQLJDKTomcat

MySQL64

MySQL32

JDK 64

JDK 32

Tomcat64

Tomcat32

  • 解壓MySQLTomcat,安裝JDK

    建立如下圖的目錄結構,jre是從JDK的安裝目錄(%JAVA_HOME%\jre)中拷貝過來的,mysql是直接解壓縮下載的MySQL重新命名根資料夾得到的,tomcat是直接解壓下載的Tomcat重新命名根資料夾得到的。

  • MySQL瘦身,解壓後刪除所有.pdb字尾內容,刪除無用資料夾得到如下結構

2.編寫批處理檔案

下面是將

javaWebConfig.bat拆分介紹,文章最後會附上完整版的javaWebConfig.bat

javaWebConfig.bat】頭部&停止已存在的mysql服務&刪除mysql服務

@echo off & setlocal EnableDelayedExpansion
net stop mysql
sc delete mysql
GOTO check80

javaWebConfig.bat】檢查端口占用情況

:check80
echo check port 80...
for /f "tokens=3 delims=:, " %%i in ('netstat -ano') do (
if "%%i" == "80" GOTO 80used
)
GOTO configBegin

:80used
mshta vbscript:CreateObject("Wscript.Shell").popup("埠80被佔用,請解除端口占用後重新啟動",7,"提示",64)(window.close)
exit /B 2

javaWebConfig.bat】配置啟動mysql

:configBegin
rem config mysql
"%~dp0mysql\bin\mysqld" install
echo [mysql]>"%~dp0mysql\my.ini"
echo default-character-set=utf8>>"%~dp0mysql\my.ini"
echo [mysqld]>>"%~dp0mysql\my.ini"
echo port = 3306>>"%~dp0mysql\my.ini"
echo max_connections=200>>"%~dp0mysql\my.ini"
echo character-set-server=utf8>>"%~dp0mysql\my.ini"
echo default-storage-engine=INNODB>>"%~dp0mysql\my.ini"
echo sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES>>"%~dp0mysql\my.ini"
echo key_buffer_size = 256M>>"%~dp0mysql\my.ini"
echo max_allowed_packet = 1M>>"%~dp0mysql\my.ini"
echo table_open_cache = 256>>"%~dp0mysql\my.ini"
echo sort_buffer_size = 1M>>"%~dp0mysql\my.ini"
echo read_buffer_size = 1M>>"%~dp0mysql\my.ini"
echo read_rnd_buffer_size = 4M>>"%~dp0mysql\my.ini"
echo myisam_sort_buffer_size = 64M>>"%~dp0mysql\my.ini"
echo thread_cache_size = 8M>>"%~dp0mysql\my.ini"
echo query_cache_size = 16M>>"%~dp0mysql\my.ini"
echo basedir=%~dp0mysql>>"%~dp0mysql\my.ini"
echo datadir=%~dp0mysql\data>>"%~dp0mysql\my.ini"
net start mysql

javaWebConfig.bat】配置啟動tomcat

echo @echo off>"%~dp0tomcat\bin\temp.bat"
echo set JAVA_HOME=%~dp0jdk>>"%~dp0tomcat\bin\temp.bat"
echo set JRE_HOME=%~dp0jdk\jre>>"%~dp0tomcat\bin\temp.bat"
set j=0
for /f "usebackq delims=""" %%i in ("%~dp0tomcat\bin\setclasspath.bat") do (
set /a j+=1
set con!j!=%%i
call set a=%%con!j!%%
if !j! NEQ 1 (echo !a!>>"%~dp0tomcat\bin\temp.bat")
)
del "%~dp0tomcat\bin\setclasspath.bat"
ren "%~dp0tomcat\bin\temp.bat" setclasspath.bat
echo %~dp0
rem start tomcat
set CATALINA_HOME=%~dp0tomcat
call "%~dp0tomcat\bin\shutdown.bat"
call "%~dp0tomcat\bin\startup.bat"

3.測試執行

javaWebConfig.bat放在mysqltomcatjdk同目錄下,右鍵以管理員身份執行即可

附:javaWebConfig.bat

@echo off & setlocal EnableDelayedExpansion
rem config prepare
net stop mysql
sc delete mysql
GOTO check80

rem check ports if available
:check80
echo check port 80...
for /f "tokens=3 delims=:, " %%i in ('netstat -ano') do (
if "%%i" == "80" GOTO 80used
)
GOTO check21

:80used
mshta vbscript:CreateObject("Wscript.Shell").popup("埠80被佔用,請解除端口占用後重新啟動",7,"提示",64)(window.close)
exit /B 2

:check21
echo check port 21...
for /f "tokens=3 delims=:, " %%i in ('netstat -ano') do (
if "%%i" == "21" GOTO 21used
)
GOTO check3131

:21used
mshta vbscript:CreateObject("Wscript.Shell").popup("埠21被佔用,請解除端口占用後重新啟動",7,"提示",64)(window.close)
exit /B 2

:check3131
echo check port 3131...
for /f "tokens=3 delims=:, " %%i in ('netstat -ano') do (
if "%%i" == "3131" GOTO 3131used
)
GOTO check5151

:3131used
mshta vbscript:CreateObject("Wscript.Shell").popup("埠3131被佔用,請解除端口占用後重新啟動",7,"提示",64)(window.close)
exit /B 2

:check5151
echo check port 5151...
for /f "tokens=3 delims=:, " %%i in ('netstat -ano') do (
if "%%i" == "5151" GOTO 5151used
)
GOTO configBegin

:5151used
mshta vbscript:CreateObject("Wscript.Shell").popup("埠5151被佔用,請解除端口占用後重新啟動",7,"提示",64)(window.close)
exit /B 2

 
rem config tomcat
echo @echo off>"%~dp0tomcat\bin\temp.bat"
echo set JAVA_HOME=%~dp0jdk>>"%~dp0tomcat\bin\temp.bat"
echo set JRE_HOME=%~dp0jdk\jre>>"%~dp0tomcat\bin\temp.bat"
set j=0
for /f "usebackq delims=""" %%i in ("%~dp0tomcat\bin\setclasspath.bat") do (
set /a j+=1
set con!j!=%%i
call set a=%%con!j!%%
if !j! NEQ 1 (echo !a!>>"%~dp0tomcat\bin\temp.bat")
)
del "%~dp0tomcat\bin\setclasspath.bat"
ren "%~dp0tomcat\bin\temp.bat" setclasspath.bat
echo %~dp0
rem start tomcat
set CATALINA_HOME=%~dp0tomcat
call "%~dp0tomcat\bin\shutdown.bat"
call "%~dp0tomcat\bin\startup.bat"