#! /bin/sh # Uncomment the following line to override the JVM search sequence # INSTALL4J_JAVA_HOME_OVERRIDE= # Uncomment the following line to add additional VM parameters # INSTALL4J_ADD_VM_PARAMS= read_db_entry() { if [ -n "$INSTALL4J_NO_DB" ]; then return 1 fi db_file=$HOME/.install4j if [ ! -f "$db_file" ]; then return 1 fi if [ ! -x "$java_exc" ]; then return 1 fi found=1 exec 7< $db_file while read r_type r_dir r_ver_major r_ver_minor r_ver_micro r_ver_patch<&7; do if [ "$r_type" = "JRE_VERSION" ]; then if [ "$r_dir" = "$test_dir" ]; then ver_major=$r_ver_major ver_minor=$r_ver_minor ver_micro=$r_ver_micro ver_patch=$r_ver_patch found=0 break fi fi done exec 7<&- return $found } create_db_entry() { tested_jvm=true echo testing JVM in $test_dir ... version_output=`"$bin_dir/java" -version 2>&1` is_gcj=`expr "$version_output" : '.*gcj'` if [ "$is_gcj" = "0" ]; then java_version=`expr "$version_output" : '.*"\(.*\)".*'` ver_major=`expr "$java_version" : '\([0-9][0-9]*\)\..*'` ver_minor=`expr "$java_version" : '[0-9][0-9]*\.\([0-9][0-9]*\)\..*'` ver_micro=`expr "$java_version" : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*'` ver_patch=`expr "$java_version" : '.*_\(.*\)'` fi if [ "$ver_patch" = "" ]; then ver_patch=0 fi if [ -n "$INSTALL4J_NO_DB" ]; then return fi db_new_file=${db_file}_new if [ -f "$db_file" ]; then awk '$1 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file rm $db_file mv $db_new_file $db_file fi dir_escaped=`echo "$test_dir" | sed -e 's/ /\\\\ /g'` echo "JRE_VERSION $dir_escaped $ver_major $ver_minor $ver_micro $ver_patch" >> $db_file } test_jvm() { tested_jvm=na test_dir=$1 bin_dir=$test_dir/bin java_exc=$bin_dir/java if [ -z "$test_dir" ] || [ ! -d "$bin_dir" ] || [ ! -f "$java_exc" ] || [ ! -x "$java_exc" ]; then return fi tested_jvm=false read_db_entry || create_db_entry if [ "$ver_major" = "" ]; then return; fi if [ "$ver_major" -lt "1" ]; then return; elif [ "$ver_major" -eq "1" ]; then if [ "$ver_minor" -lt "5" ]; then return; fi fi if [ "$ver_major" = "" ]; then return; fi app_java_home=$test_dir } add_class_path() { if [ -n "$1" ] && [ `expr "$1" : '.*\*'` -eq "0" ]; then local_classpath="$local_classpath${local_classpath:+:}$1" fi } old_pwd=`pwd` progname=`basename "$0"` linkdir=`dirname "$0"` cd "$linkdir" prg="$progname" while [ -h "$prg" ] ; do ls=`ls -ld "$prg"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '.*/.*' > /dev/null; then prg="$link" else prg="`dirname $prg`/$link" fi done prg_dir=`dirname "$prg"` cd "$prg_dir" prg_dir=`pwd` app_home=. cd "$app_home" app_home=`pwd` bundled_jre_home="$app_home/jre" cd "$prg_dir"/. if [ -f "$bundled_jre_home/lib/rt.jar.pack" ]; then old_pwd200=`pwd` cd "$bundled_jre_home" echo "Preparing JRE ..." jar_files="lib/rt.jar lib/charsets.jar lib/plugin.jar lib/deploy.jar lib/ext/localedata.jar lib/jsse.jar" for jar_file in $jar_files do if [ -f "${jar_file}.pack" ]; then bin/unpack200 -r ${jar_file}.pack $jar_file if [ $? -ne 0 ]; then echo "Error unpacking jar files. Aborting." echo "You might need administrative priviledges for this operation." exit 1 fi fi done cd "$old_pwd200" fi if [ -z "$app_java_home" ]; then test_jvm $INSTALL4J_JAVA_HOME_OVERRIDE fi if [ -z "$app_java_home" ]; then if [ -f "$app_home/.install4j/pref_jre.cfg" ]; then read file_jvm_home < "$app_home/.install4j/pref_jre.cfg" test_jvm "$file_jvm_home" if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then rm $HOME/.install4j test_jvm "$file_jvm_home" fi fi fi if [ -z "$app_java_home" ]; then path_java=`which java 2> /dev/null` path_java_home=`expr "$path_java" : '\(.*\)/bin/java$'` test_jvm $path_java_home fi if [ -z "$app_java_home" ]; then common_jvm_locations="/opt/i4j_jres/* /usr/local/i4j_jres/* /usr/bin/java* /usr/bin/jdk* /usr/bin/jre* /usr/bin/j2*re* /usr/bin/j2sdk* /usr/java* /usr/jdk* /usr/jre* /usr/j2*re* /usr/j2sdk* /usr/java/j2*re* /usr/java/j2sdk* /usr/java/jdk* /usr/java/jre* /usr/lib/java/jre /usr/local/java* /usr/local/jdk* /usr/local/jre* /usr/local/j2*re* /usr/local/j2sdk* /usr/lib/java* /usr/lib/jdk* /usr/lib/jre* /usr/lib/j2*re* /usr/lib/j2sdk*" for current_location in $common_jvm_locations do if [ -z "$app_java_home" ]; then test_jvm $current_location fi done fi if [ -z "$app_java_home" ]; then test_jvm $JAVA_HOME fi if [ -z "$app_java_home" ]; then test_jvm $JDK_HOME fi if [ -z "$app_java_home" ]; then test_jvm $INSTALL4J_JAVA_HOME fi if [ -z "$app_java_home" ]; then if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then read file_jvm_home < "$app_home/.install4j/inst_jre.cfg" test_jvm "$file_jvm_home" if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then rm $HOME/.install4j test_jvm "$file_jvm_home" fi fi fi if [ -z "$app_java_home" ]; then echo No suitable Java Virtual Machine could be found on your system. echo The version of the JVM must be at least 1.5. echo Please define INSTALL4J_JAVA_HOME to point to a suitable JVM. echo You can also try to delete the JVM cache file $HOME/.install4j exit 83 fi vmoptions_val="" vmoptions_file="$prg_dir/$progname.vmoptions" if [ -r "$vmoptions_file" ]; then exec 8< "$vmoptions_file" while read cur_option<&8; do is_comment=`expr "$cur_option" : ' *#.*'` if [ "$is_comment" = "0" ]; then vmoptions_val="$vmoptions_val $cur_option" fi done exec 8<&- fi INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val" local_classpath="" add_class_path "$app_home/.install4j/i4jruntime.jar" add_class_path "$app_home/class" add_class_path "$app_home/MRJAdapter.jar" add_class_path "$app_home/BrowserLauncher2-10rc4.jar" LD_LIBRARY_PATH="$app_home/.:$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$app_home/.:$DYLD_LIBRARY_PATH" SHLIB_PATH="$app_home/.:$SHLIB_PATH" LIBPATH="$app_home/.:$LIBPATH" LD_LIBRARYN32_PATH="$app_home/.:$LD_LIBRARYN32_PATH" LD_LIBRARYN64_PATH="$app_home/.:$LD_LIBRARYN64_PATH" export LD_LIBRARY_PATH export DYLD_LIBRARY_PATH export SHLIB_PATH export LIBPATH export LD_LIBRARYN32_PATH export LD_LIBRARYN64_PATH "$app_java_home/bin/java" -Dinstall4j.jvmDir="$app_java_home" -Dinstall4j.appDir="$app_home" -Dexe4j.moduleName="$prg_dir/$prg" -Xmx512m $INSTALL4J_ADD_VM_PARAMS -classpath "$local_classpath" com.install4j.runtime.Launcher launch cgviz.main.CGViz true false "$prg_dir/error.log" "" true true false "" true true 0 0 "" 20 20 "Arial" "0,0,0" 8 500 "version 1.0" 20 40 "Arial" "0,0,0" 8 500 -1 +s -i Examples/OSLayTemplate.cgv "$@" exit $?