Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Jan 2004 11:17:54 +0100
From:      Wolfgang Kess <kess@ze.tum.de>
To:        Marc Fonvieille <blackend@FreeBSD.org>
Cc:        doc@FreeBSD.org
Subject:   Re: Missing Dokumentation: Installing SAP R/3 JavaGUI Client
Message-ID:  <3FFD2E52.1060708@ze.tum.de>
In-Reply-To: <20040107182034.A46600@abigail.blackend.org>
References:  <3FFC3DC5.4050807@ze.tum.de> <20040107182034.A46600@abigail.blackend.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------060306010205080304030603
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hello Marc,

Marc Fonvieille wrote:
>>there is no howto "Installing a SAP R/3 JavaGUI Client".
>>
>>I made a short howto and it would be nice to add as 22.7.14.x

> It's a good idea.  Let's look at some part of the text below:


> Is it possible to change this part for something like:
> 
> Look for the following lines in the
> /usr/local/bin/sapgui/6.30rev2/bin/guistart file:
> 
> # SuSE 7.3 installs its 1.3 VM here 
> PLATIN_JAVA="/usr/lib/jre1.3/jre/bin/java" 
> PLATIN_JAVA_VER="1.3.0"
> 
> then add this:
> 
> # FreeBSD 4.8
> elif /usr/compat/linux/usr/bin/test -x "/usr/local/linux-blackdown-jdk1.3.1/jre/bin/java" ; then 
> PLATIN_JAVA="/usr/local/linux-blackdown-jdk1.3.1/jre/bin/java" 
> PLATIN_JAVA_VER="1.3.1"
> 
> Tell me what do you think about it?  (I do have the revelant file under
> hand, so I dunno if it could work...)

Yes, please change it.
I attach the guistart file.



> Another question does it runs under FreeBSD 4.9 and 5.2-RC as well?
Yes it does, at University I run a 4.9. The 5.2-RC is not tested yet.

There is an new JavaGui version 6.30r4 available. It was released 
2003/12/30.

I just made a new 5.2-RC Installation at home. So I'll test the new gui
version and I'll be glad to give you information.


Wolfgang

--------------060306010205080304030603
Content-Type: text/plain;
 name="guistart"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="guistart"

#!/bin/sh

# Start script for PlatinGUI. 
THISSCRIPT="guistart"
STARTCLASS=""
STARTOPT=""
PLATIN_DEBUG=""

# Check if running with -make option
if /usr/bin/test x"$1" = "x-make" || /usr/bin/test x"$2" = "x-make" ; then
	MAKE="true"	
fi

# Check if running with -make option
if /usr/bin/test x"$1" = "x-make" || /usr/bin/test x"$2" = "x-make" ; then
	MAKE="true"	
fi

#--------------------------------------------------------------
# Shell function: followlink
#--------------------------------------------------------------
# follow symlink
# followlink <file>
followlink() {
    TARGET=$1
    # if we are called by symlink, follow it to its target
    while /usr/bin/test -L "$TARGET" ; do
		# keep dir where the symlink is
		DIR=`dirname "$TARGET"`

		# ask ls -l about the symlink's target
		LL_OUT=`ls -l "$TARGET"`
		TARGET=`expr "$LL_OUT" : '.*-> \(.*\)'`

		# for relative target, prefix with dir of symlink
		ABS=`expr "$TARGET" : '/.*'`
		if /usr/bin/test "$ABS" -eq 0 ; then
			TARGET="$DIR/$TARGET"
		fi
    done

    echo "$TARGET"
}

#--------------------------------------------------------------
# Main program
#--------------------------------------------------------------
# The following external variables are evaluated:
#    PLATINHOME       PlatinGUI installation directory
#                    (Default: parent directory of this script)
#    PLATIN_JAVA     Java Runtime Environment command
#                    (default is platform specific, e.g. "/usr/bin/java",
#                    depending on PLATIN_JAVA_VER)
#    PLATIN_JAVA_VER Java Runtime Environment version
#                    (default is platform specific, e.g. "1.3.0". 
#                    It is an error to specify PLATIN_JAVA but not PLATIN_JAVA_VER)

# debugging
if /usr/bin/test $# -ge 1 -a x"$1" = "x-checkscript" ; then
	echo "$THISSCRIPT -checkscript output":
	echo "Before processing:"
	echo "  PLATINHOME      = $PLATINHOME"
	echo "  PLATIN_JAVA_VER = $PLATIN_JAVA_VER"
	echo "  PLATIN_JAVA     = $PLATIN_JAVA"
	echo "  uname           = `uname`"
	echo "  PATH            = $PATH"
	echo "  LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
	echo "  SHLIB_PATH      = $SHLIB_PATH"
	echo "  LIBPATH         = $LIBPATH"
fi

# try to determine PLATINHOME if not explicitly set
if /usr/bin/test "x$PLATINHOME" = "x" ; then
    # resolve symlinks to invoked script
    THISSCRIPTPATH=`followlink "$0"`
	
    # use parent directory of invoked script as PLATINHOME
    PLATINHOME=`dirname "$THISSCRIPTPATH"`/..

    ERROR="PLATINHOME not set"
else
    ERROR="please check GUI installation"
fi

# check for platin classes in PLATINHOME
if /usr/bin/test ! -r "$PLATINHOME/jar/platincoreS.jar" ; then
    echo "ERROR: $THISSCRIPT: File platincoreS.jar not found in $PLATINHOME/jar ($ERROR)" >&2
    exit 1
fi

ADD_JARS="AcrobatViewerS.jar\
          IceBrowserS.jar\
	  iCubeS.jar\
	  sapCalendarS.jar\
	  sapChartS.jar\
	  sapContextMenuS.jar\
	  sapGridS.jar\
	  sapHtmlViewerS.jar\
	  sapImageS.jar\
	  sapTextEditS.jar\
	  sapToolBarS.jar\
	  sapTreeS.jar"

START_JARS="$PLATINHOME/jar/platincoreS.jar"

# make sure libJPlatin.so is found in LD_LIBRARY_PATH
LD_LIBRARY_PATH="$PLATINHOME/bin:$LD_LIBRARY_PATH"
SHLIB_PATH="$PLATINHOME/bin:$SHLIB_PATH"
LIBPATH="$PLATINHOME/bin:$LIBPATH"
export PLATINHOME LD_LIBRARY_PATH SHLIB_PATH LIBPATH

# check for correct invocation (at least one argument for everything except guilogon)
if /usr/bin/test "$THISSCRIPT" != "guilogon" ; then
	if (/usr/bin/test $# -lt 1 && /usr/bin/test "x$MAKE" = "x") ||
	   (/usr/bin/test $# -lt 2 && /usr/bin/test "x$MAKE" != "x"); then
		echo "ERROR: $THISSCRIPT: missing argument" >&2
		echo "    Usage  : $THISSCRIPT <connectstring>" >&2
		echo "    Example: $THISSCRIPT /H/binmain.wdf.sap-ag.de/S/3253" >&2
		exit 1
	fi
fi

# try to determine PLATIN_JAVA_VER if not explicitly set
if /usr/bin/test "x$PLATIN_JAVA_VER" = "x" ; then
	# make sure that PLATIN_JAVA is not set
	if /usr/bin/test "x$PLATIN_JAVA" != "x" ; then
		echo "ERROR: $THISSCRIPT: Shell variable PLATIN_JAVA is set but PLATIN_JAVA_VER is not set" >&2
		echo "   Either unset PLATIN_JAVA (to use the default JRE) or set PLATIN_JAVA_VER to your JRE version" >&2
		echo "   JRE versions can be e.g. 1.1.8, 1.2.2, 1.3.0, ..." >&2
		exit 1
	fi

	# platform dependent Java default version
	case `uname` in

		# START PLATFORM SPECIFIC
		Linux)
			if /usr/bin/test -x "/opt/IBMJava2-131/jre/bin/java"; then
			    # standard location for IBM 1.3.1 VM
			    PLATIN_JAVA="/opt/IBMJava2-131/jre/bin/java"
			    PLATIN_JAVA_VER="1.3.1"
			elif  /usr/bin/test -x "/opt/IBMJava2-13/jre/bin/java"; then
			    # standard location for IBM 1.3 VM
			    PLATIN_JAVA="/opt/IBMJava2-13/jre/bin/java"
			    PLATIN_JAVA_VER="1.3.0"
			elif /usr/bin/test -x "/usr/lib/jre1.3/jre/bin/java" ; then
			    # SuSE 7.3 installs its 1.3 VM here
			    PLATIN_JAVA="/usr/lib/jre1.3/jre/bin/java"
			    PLATIN_JAVA_VER="1.3.0"
                        elif /usr/compat/linux/usr/bin/test -x "/usr/local/linux-blackdown-jdk1.3.1/jre/bin/java" ; then
                           # FreeBSD 4.8
                            PLATIN_JAVA="/usr/local/linux-blackdown-jdk1.3.1/jre/bin/java"
                            PLATIN_JAVA_VER="1.3.1"  
                        else
			    echo "Could not find Java VM at various standard locations." 
			    echo "If you want to use a non standard VM please set"
                            echo "the environment variables PLATIN_JAVA and PLATIN_JAVA_VER."
			    echo "PLATIN_JAVA points to the VM executable e.g. /opt/IBMJava2-131/jre/bin/java"
			    echo "PLATIN_JAVA_VER is the version number of the VM e.g.1.3.1"
			    exit 1
			fi
			;;
		SunOS)
			PLATIN_JAVA_VER="1.3.1"
			;;

		HP-UX)
			PLATIN_JAVA_VER="1.3.1"
			;;

		AIX)
			PLATIN_JAVA_VER="1.3.0"
			;;

		OSF1)
			PLATIN_JAVA_VER="1.3.0"
			;;

		# END PLATFORM SPECIFIC

		*)
			PLATIN_JAVA_VER="1.3.0"
			;;
	esac
fi

# try to determine PLATIN_JAVA from platform and PLATIN_JAVA_VER if not explicitly set
if /usr/bin/test "x$PLATIN_JAVA" = "x" ; then

	# platform dependent Java default location
	case `uname`"$PLATIN_JAVA_VER" in

		# START PLATFORM SPECIFIC

		Linux1.1*)
			PLATIN_JAVA="jre"
			;;

		SunOS1.1*)
			PLATIN_JAVA="/usr/java1.1/bin/jre"
			;;

		SunOS1.2*)
			echo "ERROR: $THISSCRIPT: No default JRE for Java 1.2 available on SunOS" >&2
			exit 1
			;;

		SunOS1.3*)
			PLATIN_JAVA="/usr/j2se/jre/bin/java"
			;;

		HP-UX1.1*)
			PLATIN_JAVA="/opt/java/bin/jre"
			;;
		HP-UX1.2*)
			echo "ERROR: $THISSCRIPT: No default JRE for Java 1.2 available on HP-UX" >&2
			exit 1
			;;
		HP-UX1.3*)
			PLATIN_JAVA="/opt/java1.3/jre/bin/java"
			;;

		AIX1.1*)
			PLATIN_JAVA="/usr/jdk_base/bin/jre"
			;;
		AIX1.2*)
			echo "ERROR: $THISSCRIPT: No default JRE for Java 1.2 available on AIX" >&2
			exit 1
			;;
		AIX1.3*)
			PLATIN_JAVA="/usr/java130/jre/bin/java"
			;;

		OSF11.1*)
			PLATIN_JAVA="/usr/opt/jre118/bin/jre"
			;;
		OSF11.2*)
			echo "ERROR: $THISSCRIPT: No default JRE for Java 1.2 available on OSF" >&2
			exit 1
			;;
		OSF11.3*)
			PLATIN_JAVA="/usr/opt/jre131/bin/java"
			;;

		# END PLATFORM SPECIFIC

		*1.1*)
			PLATIN_JAVA="jre"
			;;

		*1.2*)
			PLATIN_JAVA="java"
			;;

		*1.3*)
			PLATIN_JAVA="java"
			;;
	       *1.4*)
			PLATIN_JAVA="java"
			;;
	esac
fi

# echo "PLATIN_JAVA     = $PLATIN_JAVA"
# echo "PLATIN_JAVA_VER = $PLATIN_JAVA_VER"

# set JRE_ARGS and SWING_JAR depending on Java version
case "x$PLATIN_JAVA_VER" in 
	x1.1*)
		JRE_ARGS="-ms32M -mx128M"
		SWING_JAR="$PLATINHOME/bin/swingall.jar:"
		for FILE in $ADD_JARS; do START_JARS=$START_JARS:$PLATINHOME/jar/$FILE; done
		;;
	x1.2*)
		JRE_ARGS="-Xms32M -Xmx128M"
		SWING_JAR=""
		if /usr/bin/test "x$MAKE" != "x" ; then
			for FILE in $ADD_JARS; do START_JARS=$START_JARS:$PLATINHOME/jar/$FILE; done;
		else
			START_JARS=$START_JARS:"$PLATINHOME/jar/GuiStartS.jar";	
		fi
		echo "Java 1.2.x is not supported. I have setup the environment."
		echo "But if anything strange happens you will be out of luck."
		;;

	x1.3*)
		JRE_ARGS="-Xms32M -Xmx128M"
		SWING_JAR=""
		if /usr/bin/test "x$MAKE" != "x" ; then
			for FILE in $ADD_JARS; do START_JARS=$START_JARS:$PLATINHOME/jar/$FILE; done;
		else
			START_JARS=$START_JARS:"$PLATINHOME/jar/GuiStartS.jar";	
		fi
		;;
        x1.4*)
		JRE_ARGS="-Djava.util.prefs.systemRoot=$HOME/.java -Xms32M -Xmx128M"
		SWING_JAR=""
		if /usr/bin/test "x$MAKE" != "x" ; then
			for FILE in $ADD_JARS; do START_JARS=$START_JARS:$PLATINHOME/jar/$FILE; done;
		else
			START_JARS=$START_JARS:"$PLATINHOME/jar/GuiStartS.jar";	
		fi
                ;; 	
esac

# platform specific checks and fixes
case `uname` in

	# START PLATFORM SPECIFIC

	SunOS)
        # Check for the right Sun platform 
		case `uname -m` in
			sun4m|sun4d)
				echo "ERROR: $THISSCRIPT: The architecture "`uname -m`" is not supported." >&2
				echo "    Please check the documentation for details." >&2
				exit 1
				;;
		esac

        # The LANG environment variable causes trouble in
        # starting netscape as a helper application
        unset LANG;
		;;

	HP-UX)
        # The LANG environment variable causes trouble in
        # starting netscape as a helper application
        unset LANG

		# set 75 DPI option for JRE 1.1
		case $PLATIN_JAVA_VER in
			1.1*)
				JRE_ARGS="$JRE_ARGS -Dhpux.font.dpi=75"
				;;
		esac
		;;

	Linux)
        # The LANG environment variable causes trouble in
        # starting netscape as a helper application
        unset LANG

		# required to run JRE 1.1.8 on glibc 2.2.2
		case $PLATIN_JAVA_VER in
			1.1*)
				LD_ASSUME_KERNEL=2.2.5
				export LD_ASSUME_KERNEL
				;;
		esac
		
        # A workaround for a frame size bug on Linux/KDE
        # (logon window cut off near the bottom)
        JRE_ARGS="$JRE_ARGS -DTweakFrameSize=true"
		;;

	OSF1)
		case $PLATIN_JAVA_VER in
			1.1*)
				# need larger stack size for 1.1.8
				JRE_ARGS="$JRE_ARGS -ss8M"
				;;
		esac

		# need addiational library path for C++ stuff
		LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/cmplrs/cxx"
		;;

	# END PLATFORM SPECIFIC

esac

# determine STARTCLASS, the Java class used to start the application

if /usr/bin/test "x$MAKE" != "x" ; then
    STARTCLASS="com.sap.platin.logon.GuiImpl"
else
    STARTCLASS="com.sap.platin.Gui"
fi

case "$THISSCRIPT" in 
	guistart)
		STARTOPT="-n -o"
		;;
	guilogon)
	        STARTOPT=""
		;;
	sapgui)
		STARTOPT="-n -o"
		;;
	*)
	        echo "ERROR $THISSCRIPT: type not properly defined."
		exit 1
		;;
esac

##############################################################################################
#
# For debugging purposes options for the gui (e.g. tracing) can be set here:
# typical settings could be : PLATIN_DEBUG="-t RFC -l /var/tmp/guitrace$$.log" 
# together with             : RFC_TRACE=3; export RFC_TRACE
#
##############################################################################################
PLATIN_DEBUG=""
# RFC_TRACE="3"; export RFC_TRACE
##############################################################################################

# debugging
if /usr/bin/test $# -ge 1 -a x"$1" = "x-checkscript" ; then
	echo "After processing:"
	echo "  THISSCRIPTPATH  = $THISSCRIPTPATH"
	echo "  PLATINHOME      = $PLATINHOME"
	echo "  PLATIN_JAVA_VER = $PLATIN_JAVA_VER"
	echo "  PLATIN_JAVA     = $PLATIN_JAVA"
	echo "  PLATIN_DEBUG    = $PLATIN_DEBUG"
	echo "  LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
	echo "  SHLIB_PATH      = $SHLIB_PATH"
	echo "  LIBPATH         = $LIBPATH"
	echo "  JRE_ARGS        = $JRE_ARGS"
	echo "  SWING_JAR       = $SWING_JAR"
	echo "  START_JARS      = $START_JARS"
	echo "  STARTCLASS      = $STARTCLASS"
	echo "  RFC_TRACE       = $RFC_TRACE"
	echo ""
	echo "  $PLATIN_JAVA" $JRE_ARGS -cp $SWING_JAR$START_JARS $STARTCLASS $PLATIN_DEBUG $STARTOPT "<args>"
	exit 0
fi

# eliminate -make argument if exists
if /usr/bin/test "x$MAKE" != "x" ; then
	shift
fi


exec "$PLATIN_JAVA" $JRE_ARGS -cp $SWING_JAR$START_JARS $STARTCLASS $PLATIN_DEBUG $STARTOPT $*


--------------060306010205080304030603--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FFD2E52.1060708>