1. 程式人生 > >一鍵部署安裝JDK

一鍵部署安裝JDK

一、windows版本

@ECHO OFF

ECHO **********************************************
ECHO  * 用於安裝JDK並配置環境變數的批處理程式
ECHO  * 以下注意事項:
ECHO  * 1)配置環境變數前會先備份登錄檔(備份當前指令碼所在資料夾的backup.reg)
ECHO  * 2)如配置的環境變數有問題請執行backup.reg還原
ECHO  * 3)修改登錄檔,有些防毒軟體會報警,請點選信任
ECHO **********************************************

:: JDK的安裝路徑
SET JDK_INSTALL_PATH=C:\Program" "Files\Java\jdk1.8
:: 獲取當前安裝包名稱
FOR /r %~dp0 %%i IN (*.exe) DO (ECHO %%i|FIND "jdk">NUL && SET JDK_PACKAGE_PATH=%%i)
ECHO 正在安裝JDK,請稍等......
START /WAIT %JDK_PACKAGE_PATH% /qn INSTALLDIR=%JDK_INSTALL_PATH% && ECHO JDK安裝成功!

ECHO 配置JDK環境變數
::使用者變數儲存路徑
SET userRegPath=HKEY_CURRENT_USER\Environment
::登錄檔備份路徑,%~dp0指的當前目錄
SET regBakupPath=%~dp0backup.reg
::JDK環境變數CLASSPATH
SET CLASSPATH=.;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar;
::配置JDK的path
SET configJdkPath=%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;

::查詢登錄檔的關鍵字
SET key=path
::使用關鍵字key查詢使用者環境變數登錄檔
REG QUERY %userRegPath% /v %key% 1>nul 2>nul
::若使用關鍵字key查詢使用者環境變數成功,將查詢出來變數的結果存到oldPathValue中
if %ERRORLEVEL%==0 (
	for /f "tokens=3 delims= " %%i in ('REG QUERY %userRegPath% /v %key%') DO (SET oldPathValue=%%i)
)

ECHO 備份組冊表...
REG EXPORT %userRegPath% "%regBakupPath%"
ECHO 新建環境變數JAVA_HOME
SETX JAVA_HOME %JDK_INSTALL_PATH%
ECHO 新建環境變數CLASSPATH
SETX CLASSPATH "%CLASSPATH%"
ECHO 設定PATH
IF DEFINED oldPathValue (
	SETX PATH "%oldPathValue%;%configJdkPath%"
) ELSE SETX PATH "%configJdkPath%"
ECHO JDK環境變數配置成功!
ECHO 校驗JDK安裝成功!
java -version

二、Linux版本

#!/bin/sh
# @author radiomen

# 定義顯示顏色
RED='\e[1;91m'
GREEN='\e[1;92m'
WITE='\e[1;97m'
NC='\e[0m'

OPERATION_PATH=/opt
TOMCAT_WEBAPPS_PATH=/opt/tomcat/webapps
PROFILE_PATH=/etc/profile
JDK_UNPACKAGE_NAME=jdk-8u191-linux-x64.tar.gz
JDK_PACKAGE_NAME=jdk1.8.0_191
JAVA_HOME=/opt/jdk1.8.0_191
JRE_HOME=/opt/jdk1.8.0_191/jre

function copy_package_to_opt()
{
	echo 'Copy JDK package to /opt, it may take a moment !'
	cp ./$JDK_UNPACKAGE_NAME $OPERATION_PATH
	echo -e $RED 'Copy base package success !' $NC
}

function install_jdk()
{	
	echo 'Install JDK,it may take a moment !'
	cd $OPERATION_PATH
	tar -xzvf $JDK_UNPACKAGE_NAME && rm -rf $JDK_UNPACKAGE_NAME
	echo JAVA_HOME=$JAVA_HOME >> $PROFILE_PATH
	echo JRE_HOME=$JRE_HOME >> $PROFILE_PATH
	echo "CLASS_PATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib
PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH" >> $PROFILE_PATH
	source $PROFILE_PATH
	echo -e $RED 'Install JDK success !' $NC
}

function main()
{
	copy_package_to_opt
	install_jdk
}

main