📄 setup_linux
字号:
if (verify == 0) { if (exactMatch == 1) { print "exact match of system property succeeded" >> ilog } else { print "non-exact match of system property succeeded" >> ilog } } else { if (exactMatch == 1) { print "exact match of system property failed" >> ilog } else { print "non-exact match of system property failed" >> ilog } } } print verify } ' jvmout="$jvmout" jvmfilevalue="$jvmfilevalue" ismpVV="$ismpVV" ilog="$LOG" </dev/null 2>/dev/null` if [ $verify -ne 0 ] ; then break fi spcc=`expr $spcc + 1` done else dbg "$ISTEMP/jvmout does not exist. JVM Verification process may have failed." fi else dbg "system properties are not specified in "$1"" fi rm -f "$ISTEMP/sp" rm -f "$ISTEMP/jvmout"}searchParitions(){ for i in $1 ; do find ${i} -type d \ \( -name '*[jJ][dD][kK]*' \ -o -name '*[jJ][rR][eE]*' \ -o -name '*[jJ][aA][vV][aA]*' \ -o -name '*[jJ]2[rR][eE]*' \ -o -name '*[jJ]2[sS][eE]*' \ \) >> "$ISTEMP/searchParitionsResult" 2>/dev/null done}writesptab(){ sed 's/^[ ]*//;s/[ ]*$//' "$1" >> "$1.tmp" 2>/dev/null mv "$1.tmp" "$1" awk ' BEGIN { begin=0; i=1} $0 == "/:" { if (begin == 1) begin=0 ; next; } $0 == tag { begin=1; next; } { if (begin== 1) { item[i]=$0; i++; next; } } END { for (k=1; k < i; k++) { s=sprintf("%s%s;",s,item[k]); } s=sprintf("%s%s",s,JF); print s >> tab } ' JF="$1" tab="$ISTEMP/sp" tag="JVM_PROPERTIES:" "$1" 2>/dev/null}verifyJavaHome(){ if [ -f "$ISTEMP/jvmlist" ] ; then jvmlc=`wc -l "$ISTEMP/jvmlist" | awk '{ print $1 }'` cc=1 while [ $cc -le $jvmlc ] ; do JVM_FILE=`sed -n -e "${cc}p" "$ISTEMP/jvmlist" 2>/dev/null` if [ -f "$JVM_FILE" ] ; then JVM_EXE=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$JVM_FILE"` JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` if [ -z "$JVM_EXE" ] ; then [ $ismpVV ] && dbg "value of JVM_EXE is an empty string in JVM FILE="$JVM_FILE". Trying next JVM File" continue else [ $ismpVV ] && dbg "value of JVM_EXE=$JVM_EXE in JVM FILE="$JVM_FILE"" fi if [ -x "$ISJAVAHOME/$JVM_EXE" ] ; then [ $ismpVV ] && dbg "Verifying $ISJAVAHOME using the JVM file $JVM_FILE" VerifyJVM "$JVM_FILE" "$ISJAVAHOME/$JVM_EXE" if [ $verify -eq 0 ] ; then J="$ISJAVAHOME" J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` echo "JVM_HOME:$J" >> "$JVM_FILE" RESOLVED_JVM="$JVM_FILE" sv=0 dbg "Verification passed for $ISJAVAHOME using the JVM file $JVM_FILE." return else dbg "Verification failed for $ISJAVAHOME using the JVM file $JVM_FILE" fi fi fi cc=`expr $cc + 1` done else [ $ismpVV ] && dbg "jvm files not specified. Verification cannot be performed for JVM specfied using $ISJAVAHOME" fi}checkEnvironment() { dbg "Checking the environment variables specifed in the JVM files to find the JVM..." if [ -f "$ISTEMP/jvmlist" ] ; then checkEnvlc=`wc -l "$ISTEMP/jvmlist" | awk '{ print $1 }'` checkEnvcc=1 while [ $checkEnvcc -le $checkEnvlc ] ; do checkEnvJvmFile=`sed -n -e "${checkEnvcc}p" "$ISTEMP/jvmlist" 2>/dev/null` for pathVariable in `echo $PATH|sed 's/:/ /g'` do if [ -x "$pathVariable/java" ] ; then VerifyJVM "$checkEnvJvmFile" "$pathVariable/java" if [ $verify -eq 0 ] ; then pathVariable=`echo $pathVariable | sed 's/\/bin//g'` echo "JVM_HOME:$pathVariable" >> "$checkEnvJvmFile" RESOLVED_JVM="$checkEnvJvmFile" sv=0 dbg "Verification passed for $pathVariable/$checkEnvJvmExe using the JVM file $checkEnvJvmFile." return fi fi done checkEnvJvmExe=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$checkEnvJvmFile" 2>/dev/null` checkEnvJvmExe=`echo "$checkEnvJvmExe" | sed 's/^[ ]*//;s/[ ]*$//'` if [ -z "$checkEnvJvmExe" ] ; then [ $ismpVV ] && dbg "value of JVM_EXE is an empty string in JVM FILE="$checkEnvJvmFile". Trying next JVM File." checkEnvcc=`expr $checkEnvcc + 1` continue else [ $ismpVV ] && dbg "value of JVM_EXE=$JVM_EXE in JVM FILE=$checkEnvJvmFile" fi if [ -f "$ISTEMP/platformHint" ] ; then rm -f "$ISTEMP/platformHint" fi writetab "$checkEnvJvmFile" "$ISTEMP/platformHint" "PLATFORM_HINT:" if [ -f "$ISTEMP/platformHint" ] ; then [ $ismpVV ] && dbg "using platform hints or environment variables in the JVM file $checkEnvJvmFile" platformHintlc=`wc -l "$ISTEMP/platformHint" | awk '{ print $1 }'` platformHintcc=1 while [ $platformHintcc -le $platformHintlc ] ; do platformHintLine=`sed -n -e "${platformHintcc}p;s/^[ ]*//;s/[ ]*$//" "$ISTEMP/platformHint" | sed 's/\(.*\)/$\1/'` eval platformHintEvaled=$platformHintLine if [ -n "$platformHintEvaled" ] ; then if [ -x "$platformHintEvaled/$checkEnvJvmExe" ] ; then dbg "A jvm found at $platformHintEvaled/$checkEnvJvmExe" VerifyJVM "$checkEnvJvmFile" "$platformHintEvaled/$checkEnvJvmExe" if [ $verify -eq 0 ] ; then platformHintEvaled=`echo "$platformHintEvaled" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` echo "JVM_HOME:$platformHintEvaled" >> "$checkEnvJvmFile" RESOLVED_JVM="$checkEnvJvmFile" sv=0 dbg "Verification passed for $platformHintEvaled/$checkEnvJvmExe using the JVM file $checkEnvJvmFile." return else dbg "Verification failed for $platformHintEvaled/$checkEnvJvmExe using the JVM file $checkEnvJvmFile." fi fi else dbg "$platformHintLine is not defined in the shell environment specifed in the JVM FILE `basename $checkEnvJvmFile`" fi platformHintcc=`expr $platformHintcc + 1` done else dbg "platform hints or environment variables are not specified in the JVM file $checkEnvJvmFile" fi checkEnvcc=`expr $checkEnvcc + 1` done else [ $ismpVV ] && dbg "jvm files not specified in the launcher. Environment Variables can not be checked." fi}searchJVM(){ makeJVMFit extractJVMFiles [ "$ISJAVAHOME" ] && { dbg "command line switch -is:javahome is specified. Verifying the JVM with the JVM files specifed with the launcher." verifyJavaHome if [ $sv -eq 0 ] ; then return else dbg "JVM specified with -is:javahome cannot be verified with the JVM files specified with the launcher. Environment Variables will be checked next..." fi } checkEnvironment if [ $sv -eq 0 ] ; then return else dbg "No JVM can be found using the shell environment variable. Searching JVM will continue with Path Hints specified in the JVM Files..." fi JVM_FILE= if [ -f "$ISTEMP/jvmlist" ] ; then jvmlc=`wc -l "$ISTEMP/jvmlist" | awk '{ print $1 }'` cc=1 while [ $cc -le $jvmlc ] ; do JVM_FILE=`sed -n -e "${cc}p" "$ISTEMP/jvmlist" 2>/dev/null` if [ -f "$JVM_FILE" ] ; then searchAndVerify "$JVM_FILE" if [ $sv -eq 0 ] ; then dbg "jvm found and verification passed for $JVM_FILE." break fi fi cc=`expr $cc + 1` done else dbg "jvm files not specified. Searching a JVM can not be performed." fi}aggregatecp(){ aggregatecpc=`wc -l "$1" | awk '{ print $1 }'` aggregatecpcc=1 while [ $aggregatecpcc -le $aggregatecpc ] ; do aggregatecpl=`sed -n -e "${aggregatecpcc}p" "$1" 2>/dev/null` aggregatecpl=`echo "$aggregatecpl" | sed 's/\"//g' 2>/dev/null` AGGREGATECP=`awk ' END { s=sprintf("\"%s\"",b); s=sprintf("%s:%s",a,s); printf s }' a="$AGGREGATECP" b="$aggregatecpl" </dev/null 2>/dev/null` aggregatecpcc=`expr $aggregatecpcc + 1` done echo "$AGGREGATECP"}extractArchiveJar(){ [ -n "$ismpVV" ] && dbg "Installer JAR archive is embedded. Extracting ..." I=0 while [ $I -lt $FILEINDEXCOUNT ] ; do II=`awk 'END{ s=sprintf("$FILEINDEX%s", I); print s }' I=$I </dev/null 2>/dev/null` eval II=$II TYPE=`awk 'END{ split(II,FIELDS, ":"); print FIELDS[1]; }' II=$II </dev/null 2>/dev/null` TYPE=`convert $TYPE` if [ "$TYPE" -eq "$APP_ARCHIVE_TYPE" ] ; then SIZE=`awk 'END{ split(II,FIELDS, ":"); print FIELDS[3] }' II=$II </dev/null 2>/dev/null` OFFSET=`awk 'END{ split(II,FIELDS, ":"); print FIELDS[4] }' II=$II </dev/null 2>/dev/null` NAME=`awk 'END{ split(II,FIELDS, ":"); print FIELDS[5] }' II=$II </dev/null 2>/dev/null` SIZE=`convert $SIZE` OFFSET=`convert $OFFSET` NAME="$ISTEMP/$NAME" checkDiskSpace "$SIZE" "$ISTEMP" "$NAME" [ $disk_space_check -ne 0 ] && cleanupandexit 1 nospace pbclr pbmesg="Extracting Installation Archive" pb extractAFile INSTALLER_ARCHIVE="$NAME" break fi I=`expr $I + 1` done}extractEmbeddedJar(){ embeddedJarc=0 while [ $embeddedJarc -lt $FILEINDEXCOUNT ] ; do FI_KEY=`awk 'END{ s=sprintf("$FILEINDEX%s", I); print s }' I=$embeddedJarc </dev/null 2>/dev/null` eval FI_VALUE=$FI_KEY TYPE=`awk 'END{ split(a,FIELDS, ":"); print FIELDS[1]; }' a=$FI_VALUE </dev/null 2>/dev/null` TYPE=`convert $TYPE` if [ "$TYPE" -eq $EMBED_JARS_TYPE ] ; then SIZE=`awk 'END{ split(a,FIELDS, ":"); print FIELDS[3] }' a=$FI_VALUE </dev/null 2>/dev/null` OFFSET=`awk 'END{ split(a,FIELDS, ":"); print FIELDS[4] }' a=$FI_VALUE </dev/null 2>/dev/null` NAME=`awk 'END{ split(a,FIELDS, ":"); print FIELDS[5] }' a=$FI_VALUE </dev/null 2>/dev/null` SIZE=`convert $SIZE` OFFSET=`convert $OFFSET` NAME="$ISTEMP/$NAME" dbg "extracting embedded jars in the archive." checkDiskSpace "$SIZE" "$ISTEMP" "$NAME" [ $disk_space_check -ne 0 ] && cleanupandexit 1 nospace extractAFile EMBEDDED_JARS=`awk ' END { s=sprintf("\"%s\"",b); s=sprintf("%s:%s",a,s); printf s }' a="$EMBEDDED_JARS" b="$NAME" </dev/null 2>/dev/null` fi embeddedJarc=`expr $embeddedJarc + 1` done}parseJavaArgs(){ awk '$0 !~ /^-/ && /.*,.*/{ if (length($0) > 1 ) { t=split($0,FIELDS,",") if (t == 2) print FIELDS[2]; } } /^-/{ printf("%s\n",$0); }' | sed 's/\\//g;s/)//;s/^[ ]*//;s/[ ]*$//;s/^\"//;s/\"$//;s/@\(.*\)@\(.*\)/\1=\2/' >> "$ISTEMP/javaargs"}aggregateJavaArgs(){ #<jvmfile> <jvmargsfile-oneperline> javaArgsc=`wc -l "$2" | awk '{ print $1 }'` javaArgscc=1 while [ $javaArgscc -le $javaArgsc ] ; do javaArgsl=`sed -n -e "${javaArgscc}p" "$2"` javaArgsl=`echo "$javaArgsl" | sed 's/^[ ]*//;s/[ ]*$//'` if [ `awk 'END { print index(a,"-") }' a="$javaArgsl" </dev/null 2>/dev/null` -ne 1 ] ; then javaArgsResolved=`awk '{ split(A, FIELDS,"="); if ( index($0, FIELDS[1]) == 1 ) { i=index($0, ":") ; if ( i > 1 ) { s=substr($0, i+1); if (length(FIELDS[2]) > 0) { s=sprintf("%s%s",s, FIELDS[2]); } print s; exit; } } }' A="$javaArgsl" "$1"` if [ -n "$javaArgsResolved" ] ; then [ -n "$ismpVV" ] && dbg "Java Argument `echo "$javaArgsl" | cut -d= -f1` is resolved to $javaArgsResolved in the JVM FILE $1" else dbg "Java argument `echo "$javaArgsl" | cut -d= -f1` is not defined in the JVM file $1." fi else javaArgsResolved="$javaArgsl" [ -n "$ismpVV" ] && dbg "using literal Java Argument $javaArgsResolved" fi if [ -n "$javaArgsResolved" ] ; then JAVA_ARGS=`awk 'END{ printf("%s %s", a, b); }' a="$javaArgsResolved" b="$JAVA_ARGS" </dev/null 2>/dev/null` fi javaArgscc=`expr $javaArgscc + 1` done}resolveRuntimeJavaArgs(){ [ -n "$ismpVV" ] && dbg "resolving runtime java args" jaFile=`modifyFileName "$INSTALLER_PATH" ja` if [ -f "$jaFile" ] ; then cat "$jaFile" | sed 's/%IF_EXISTS%//' | parseJavaArgs else dbg "Run time Java arguments are not specified." fi}resolveBuildTimeJavaArgs(){ [ -n "$ismpVV" ] && dbg "resolving buildtime java args" if [ -n "$JAVA_ARGS_UNRESOLVED" ] ; then echo "$JAVA_ARGS_UNRESOLVED" | sed 's/%IF_EXISTS%//g;s/) */+/g;s/\(-[^ .]*\)/\1+/g' | tr '+' '\012' | sed 's/^[ ]*//;s/[ ]*$//' | parseJavaArgs [ \( -f "$ISTEMP/javaargs" -a -n "$ismpVV" \) ] && cp "$ISTEMP/javaargs" "$ISTEMP/javaargs.buildtime" else dbg "Build time Java arguments are not specified." fi}modifyFileName(){ installerDir=`dirname "$1"` installerDir=`echo "$installerDir" | sed 's/\//\\\\\//g'` awk 'END { t=split(a,FIELDS,"."); if ( t > 1 ) { for (i=1; i<=t-1;i++) s=sprintf("%s.%s",s,FIELDS[i]); } else { s=a;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -