Você teve um erro de digitação na linha 3 da sua pergunta. Deixou de fora o '/ bin /' em '/usr/local/jdk1.8.0_121/java' no comando alternatives. Deveria ter sido '/usr/local/jdk1.8.0_121/bin/java'.
alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_121/bin/java 180121
Informação extra: Quando instalo o Java dessa maneira, também faço alguns dos programas auxiliares escravos no comando alternatives. Para a prioridade, faço uma string a partir do número de release do Java. Você pode obter apenas o comando de linha única, mas eu teria usado algo semelhante ao seguinte:
alternatives --install /usr/bin/java java \
/usr/local/jdk1.8.0_121/bin/java 180121 \
--slave /usr/bin/jar jar /usr/local/jdk1.8.0_121/bin/jar \
--slave /usr/bin/jarsigner jarsigner /usr/local/jdk1.8.0_121/bin/jarsigner \
--slave /usr/bin/javac javac /usr/local/jdk1.8.0_121/bin/javac \
--slave /usr/bin/javadoc javadoc /usr/local/jdk1.8.0_121/bin/javadoc \
--slave /usr/bin/javah javah /usr/local/jdk1.8.0_121/bin/javah \
--slave /usr/bin/javap javap /usr/local/jdk1.8.0_121/bin/javap \
--slave /usr/bin/javaws javaws /usr/local/jdk1.8.0_121/bin/javaws \
--slave /usr/bin/jconsole jconsole /usr/local/jdk1.8.0_121/bin/jconsole \
--slave /usr/bin/jcontrol jcontrol /usr/local/jdk1.8.0_121/bin/jcontrol \
--slave /usr/bin/jdb jdb /usr/local/jdk1.8.0_121/bin/jdb \
--slave /usr/bin/jhat jhat /usr/local/jdk1.8.0_121/bin/jhat \
--slave /usr/bin/jinfo jinfo /usr/local/jdk1.8.0_121/bin/jinfo \
--slave /usr/bin/jmap jmap /usr/local/jdk1.8.0_121/bin/jmap \
--slave /usr/bin/jps jps /usr/local/jdk1.8.0_121/bin/jps \
--slave /usr/bin/jrunscript jrunscript /usr/local/jdk1.8.0_121/bin/jrunscript \
--slave /usr/bin/jsadebugd jsadebugd /usr/local/jdk1.8.0_121/bin/jsadebugd \
--slave /usr/bin/jstack jstack /usr/local/jdk1.8.0_121/bin/jstack \
--slave /usr/bin/jstat jstat /usr/local/jdk1.8.0_121/bin/jstat \
--slave /usr/bin/jstatd jstatd /usr/local/jdk1.8.0_121/bin/jstatd \
--slave /usr/bin/jvisualvm jvisualvm /usr/local/jdk1.8.0_121/bin/jvisualvm