📄 setup_solaris
字号:
[ "$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; } print s; }' a=`basename "$1"` </dev/null 2>/dev/null | sed "s/^\.//;s/\.$//;s/\(.*\)/${installerDir}\/\1.${2}/" }processCommandLineCP(){ if [ `awk 'END{ if (index(a,"@") == 1) print 0 ; else print 1; }' a="$1" </dev/null 2>/dev/null` -eq 0 ] ; then file=`awk 'END{ s=substr(a, 2); print s; }' a="$1" </dev/null 2>/dev/null` [ -f "$file" ] && CommandLineCP=`aggregatecp "$file"` else CommandLineCP=`awk 'END{ t=split(a,FIELDS,":"); for ( i=1; i<=t; i++) { if ( length(FIELDS[i]) > 0 ) { quotedCPItem=sprintf("\"%s\"",FIELDS[i]); s=sprintf("%s:%s",s,quotedCPItem); } } printf s; }' a="$1" </dev/null 2>/dev/null` fi echo "$CommandLineCP" | sed 's/^://'}resolveLaunchCommand(){ if [ -f "$1" ] ; then JVM_HOME=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_HOME "$1" 2>/dev/null` JVM_HOME=`echo "$JVM_HOME" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` [ ! -d "$JVM_HOME" ] && { dbg "JavaHome is not resolved correctly in the jvm file $1. Failed to launch the application." return } JVM_EXE=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_EXE "$1" 2>/dev/null` JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` [ -z "$JVM_EXE" ] && { dbg "Javaexe is not resolved correctly or empty in the jvm file $1. Failed to launch the application." return } CLASSPATH_SWITCH=`awk 'BEGIN{ FS=":"} $1 == tag { print $2; exit; }' tag=CLASSPATH "$1" 2>/dev/null` CLASSPATH_SWITCH=`echo "$CLASSPATH_SWITCH" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` [ -z $CLASSPATH_SWITCH ] && { dbg "Classpath switch is not specified in the jvm file $1. Failed to launch the application." return } if [ -n "$CP_P" ] ; then PREPEND_CLASSPATH=`processCommandLineCP "$CP_P"` else dbg "-cp:p operand is empty" fi if [ -n "$CP_A" ] ; then APPEND_CLASSPATH=`processCommandLineCP "$CP_A"` else dbg "-cp:a operand is empty" fi cp1File=`modifyFileName "$INSTALLER_PATH" cp1` [ -f "$cp1File" ] && { CP1=`aggregatecp "$cp1File"` dbg "classpath specified in the $cp1File=$CP1" } JVM_CLASSPATH=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_CLASSPATH "$1" 2>/dev/null` cpFile=`modifyFileName "$INSTALLER_PATH" cp` [ -f "$cpFile" ] && { CP=`aggregatecp "$cpFile"` dbg "classpath specified in the $cpFile=$CP" } if [ -z "$APPLICATION_ARCHIVE" ] ; then dbg "Installer JAR archive is not embedded." APPLICATION_ARCHIVE= elif [ "$APPLICATION_ARCHIVE" = EMBED ] ; then extractArchiveJar if [ -f "$INSTALLER_ARCHIVE" ] ; then archiveSize=`wc -c "$INSTALLER_ARCHIVE" | awk '{ if ( $1 ~ /^[0-9]/ ) print $1 ; else print 0; }' 2>/dev/null` if [ $archiveSize -ne $SIZE ] ; then archiveSize=`ls -l "$INSTALLER_ARCHIVE" | awk '{ if ( $5 ~ /^[0-9]/ ) print $5 ; else print 0; }' 2>/dev/null` if [ $archiveSize -ne $SIZE ] ; then dbg "Extracted Installer JAR archive file size incorrect. archive may be corrupt. Failed to launch the application." return else APPLICATION_ARCHIVE="$INSTALLER_ARCHIVE" fi else APPLICATION_ARCHIVE="$INSTALLER_ARCHIVE" fi else dbg "Error extracting Installer JAR archive from shell script wrapper. Failed to launch the application." return fi elif [ -n "$APP_ORIG_HOME" ] ; then if [ -f "$APP_ORIG_HOME"/"$APPLICATION_ARCHIVE" ] ; then dbg "Installer JAR archive is not embedded. Copying from $APP_ORIG_HOME/$APPLICATION_ARCHIVE" rclSize=`wc -c "$APP_ORIG_HOME/$APPLICATION_ARCHIVE" | awk '{ if ( $1 ~ /^[0-9]/ ) print $1 ; else print 0; }' 2>/dev/null` checkDiskSpace "$rclSize" "$ISTEMP" "$APP_ORIG_HOME/$APPLICATION_ARCHIVE" [ $disk_space_check -ne 0 ] && cleanupandexit 1 nospace cp "$APP_ORIG_HOME/$APPLICATION_ARCHIVE" "$ISTEMP/$APPLICATION_ARCHIVE" if [ $? -eq 0 ] ; then INSTALLER_ARCHIVE="$ISTEMP/$APPLICATION_ARCHIVE" else dbg "Error copying the Installer JAR archive from the CD media to temp location on the host machine. Failed to launch the application." return fi else dbg "Installer JAR archive is not located in the CD media location. Failed to launch the application." return fi else dbg "CD media location is not defined and Installer JAR archive can not be located. Failed to launch the application." return fi [ -n "$INSTALLER_ARCHIVE" ] && INSTALLER_ARCHIVE=`awk 'END { s=sprintf("\"%s\"",a); print s; }' a="$INSTALLER_ARCHIVE" </dev/null 2>/dev/null` extractEmbeddedJar cp2File=`modifyFileName "$INSTALLER_PATH" cp2` [ -f "$cp2File" ] && { CP2=`aggregatecp "$cp2File"` dbg "classpath specified in the $cp2File=$CP2" } spFile=`modifyFileName "$INSTALLER_PATH" sp` [ -f "$spFile" ] && { runtimespc=`wc -l "$spFile" | awk '{ print $1 }'` runtimespcc=1 while [ $runtimespcc -le $runtimespc ] ; do runtimespl=`sed -n -e "${runtimespcc}p" "$spFile" 2>/dev/null` RUNTIME_SYSTEMPROP=`awk 'END{ s=sprintf("%s -D%s ",a,b); print s; }' a="$RUNTIME_SYSTEMPROP" b="$runtimespl" </dev/null 2>/dev/null` runtimespcc=`expr $runtimespcc + 1` done dbg "java runtime system properties specified in $spFile file = $RUNTIME_SYSTEMPROP" } resolveBuildTimeJavaArgs "$1" #<jvmfile> resolveRuntimeJavaArgs "$1" #<jvmfile> if [ -f "$ISTEMP/javaargs" ] ; then awk 'L[$0]++ == 0' "$ISTEMP/javaargs" >> "$ISTEMP/javaargs.nodups" ; rm -f "$ISTEMP/javaargs" aggregateJavaArgs "$1" "$ISTEMP/javaargs.nodups" #<jvmfile> <jvmargsfile-oneperline> [ "$DBG" -ne 1 ] && rm -f "$ISTEMP/javaargs.nodups" else dbg "Warning: internal error parsing Java arguments. Launcher command may be missing Java Arguments." fi IS_JVM_FILE="$1" IS_JVM_HOME="$JVM_HOME" IS_LAUNCHER_FILE="$INSTALLER_PATH" IS_TEMP_DIR="$ISTEMP_HOME" if [ -n "$APP_ORIG_HOME" ] ; then MEDIA_DIR="$APP_ORIG_HOME" else MEDIA_DIR=`dirname "$INSTALLER_PATH"` fi [ -z "$LOG" ] && LOG=/dev/null APP_STDERR=">$ISTEMP/APP_STDERR" # make sure APP_STDERR is always assigned. [ \( -z "$SILENT" -a -n "$CONSOLE_ON" \) ] && APP_STDERR="&1" # do re-direction if necessary. if [ "$uimode" -eq 0 ] ; then APP_STDOUT="&1" else APP_STDOUT=">$LOG" # make sure APP_STDOUT is always assigned. [ \( -z "$SILENT" -a -n "$CONSOLE_ON" \) ] && APP_STDOUT="&1" # do re-direction if necessary. fi resolve=0 else dbg "resolved jvm file can not be found. Failed to launch the application." fi }installBundledJRE(){ [ $ismpVV ] && dbg "installing bundled JRE..." installJVMc=0 while [ $installJVMc -lt $FILEINDEXCOUNT ] ; do FI_KEY=`awk 'END{ s=sprintf("$FILEINDEX%s", I); print s }' I=$installJVMc </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 $JVM_INSTALLER_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 bundled JRE..." pbclr pbmesg="Extracting Bundled JRE" pb checkDiskSpace "$SIZE" "$ISTEMP" "$NAME" [ $disk_space_check -ne 0 ] && cleanupandexit 1 nospace extractAFile break fi installJVMc=`expr $installJVMc + 1` done if [ ! -f "$NAME" ] ; then dbg "$NAME is not found. Error extracting bundled JRE. Failed to launch the application." return else [ $ismpVV ] && dbg "extracting bundled JRE successful." fi whereAmI=`pwd` mkdir "$ISTEMP/_bundledJRE_" >/dev/null 2>&1 checkDiskSpace "$NAME" "$ISTEMP" [ $disk_space_check -ne 0 ] && cleanupandexit 1 nospace cd "$ISTEMP/_bundledJRE_" dbg "installing bundled JRE..." pbclr pbmesg="Installing Bundled JRE" pb "$NAME" -qq >/dev/null 2>&1 if [ $? -ne 0 ] ; then cd "$whereAmI" dbg "Error installing bundled JRE. Failed to launch the application." rm -f "$NAME" return else cd "$whereAmI" [ $ismpVV ] && dbg "installing bundled JRE successful." rm -f "$NAME" fi chmod -R 755 "$ISTEMP/_bundledJRE_" > /dev/null 2>&1 if [ -f "$ISTEMP/_bundledJRE_/jvm" ] ; then sed "s/
//;s/^[ ]*//;s/[ ]*$//" "$ISTEMP/_bundledJRE_/jvm" >> "$ISTEMP/_bundledJRE_/jvm.sed" 2>/dev/null mv "$ISTEMP/_bundledJRE_/jvm.sed" "$ISTEMP/_bundledJRE_/jvm" else dbg "Invalid bundled JRE. jvm file is missing. Installation of bundled JRE is not successful." return fi JVM_EXE=`awk 'BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$ISTEMP/_bundledJRE_/jvm" 2>/dev/null` if [ -z "$JVM_EXE" ] ; then dbg "value of JVM_EXE is an empty string in JVM FILE=$ISTEMP/_bundledJRE_/jvm. Bundled JRE jvm file is incorrect. Installation of bundled JRE is not successful." return else [ $ismpVV ] && dbg "value of JVM_EXE=$JVM_EXE in JVM FILE=$ISTEMP/_bundledJRE_/jvm" fi JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` if [ -x "$ISTEMP/_bundledJRE_/$JVM_EXE" ] ; then [ $ismpVV ] && dbg "Verifying $ISTEMP/_bundledJRE_/$JVM_EXE using the JVM file $ISTEMP/_bundledJRE_/jvm" VerifyJVM "$ISTEMP/_bundledJRE_/jvm" "$ISTEMP/_bundledJRE_/$JVM_EXE" if [ $verify -eq 0 ] ; then J="$ISTEMP/_bundledJRE_" J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` echo "JVM_HOME:$J" >> "$ISTEMP/_bundledJRE_/jvm" RESOLVED_JVM="$ISTEMP/_bundledJRE_/jvm" IS_JVM_TEMP=1 install_jvm=0 dbg "Verification passed for $ISTEMP/_bundledJRE_ using the JVM file $ISTEMP/_bundledJRE_/jvm." return else dbg "Verification failed for $ISTEMP/_bundledJRE_ using the JVM file $ISTEMP/_bundledJRE_/jvm" fi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -