I installed the latest Oracle Java sdk onto my new openSUSE 12.3 environment. I updated the update alternatives thing but the environment variables don't follow suite. Sure I could set the variables manually with a script every time I start a java app but if they are in the env without my having done anything, can I at least have them come correctly?

me@host:~> env | grep -i java

What I did to set up the Oracle java:
/usr/sbin/update-alternatives --install /usr/bin/java java /usr/local/jdk1.7.0_17/bin/java 1
/usr/sbin/update-alternatives --install "/usr/lib64/browser-plugins/javaplugin.so" "javaplugin" "/usr/local/jdk1.7.0_17/jre/lib/amd64/libnpjp2.so" 20000
/usr/sbin/update-alternatives --set java /usr/local/jdk1.7.0_17/bin/java
/usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.7.0_17/bin/javac 1

me@host:~> which java

me@host:~> ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar 18 22:04 /usr/bin/java -> /etc/alternatives/java

me@host:~> ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 31 Mar 19 20:58 /etc/alternatives/java -> /usr/local/jdk1.7.0_17/bin/java

me@host:~> cat .profile
# Sample .profile for SuSE Linux
# rewritten by Christian Steinruecken <cstein@suse.de>
# This file is read each time a login shell is started.
# All other interactive shells will only read .bashrc; this is particularly
# important for language settings, see below.

test -z "$PROFILEREAD" && . /etc/profile || true

# Most applications support several languages for their output.
# To make use of this feature, simply uncomment one of the lines below or
# add your own one (see /usr/share/locale/locale.alias for more codes)
# This overwrites the system default set in /etc/sysconfig/language
# in the variable RC_LANG.
#export LANG=de_DE.UTF-8 # uncomment this line for German output
#export LANG=fr_FR.UTF-8 # uncomment this line for French output
#export LANG=es_ES.UTF-8 # uncomment this line for Spanish output

# Some people don't like fortune. If you uncomment the following lines,
# you will have a fortune each time you log in ;-)

#if [ -x /usr/bin/fortune ] ; then
# echo
# /usr/bin/fortune
# echo

me@host:~> cat .bashrc
# Sample .bashrc for SuSE Linux
# Copyright (c) SuSE GmbH Nuernberg

# There are 3 different types of shells in bash: the login shell, normal shell
# and interactive shell. Login shells read ~/.profile and interactive shells
# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all
# settings made here will also take effect in a login shell.
# NOTE: It is recommended to make language settings in ~/.profile rather than
# here, since multilingual X sessions would not work properly if LANG is over-
# ridden in every subshell.

# Some applications read the EDITOR variable to determine your favourite text
# editor. So uncomment the line below and enter the editor of your choice :-)
#export EDITOR=/usr/bin/vim
#export EDITOR=/usr/bin/mcedit

# For some news readers it makes sense to specify the NEWSSERVER variable here
#export NEWSSERVER=your.news.server

# If you want to use a Palm device with Linux, uncomment the two lines below.
# For some (older) Palm Pilots, you might need to set a lower baud rate
# e.g. 57600 or 38400; lowest is 9600 (very slow!)
#export PILOTPORT=/dev/pilot
#export PILOTRATE=115200

test -s ~/.alias && . ~/.alias || true

My guess is that it's with the script /etc/profile.d/alljava.csh . But shouldn't this look at the "alternative" symlinks?