windows 打包Java web專案內容實現一鍵安裝
阿新 • • 發佈:2019-01-01
1.下載MySQL、JDK、Tomcat
【MySQL64位】
【MySQL32位】
【JDK 64位】
【JDK 32位】
【Tomcat64位】
【Tomcat32位】
-
解壓MySQL、Tomcat,安裝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放在mysql、tomcat、jdk同目錄下,右鍵以管理員身份執行即可
附: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"