Child pages
  • Install or Uninstall Java

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

At this point, you have a JVM installed below your /usr/lib/jvm directory and you've a jinfo file tuned to your needs with a unique priority number.

...

Now it's time to link /etc/alternatives with our new installed JVM. 

Anchor
InstallCommandLine
InstallCommandLine
Command Line

Usually one has to install each java commands, tools or libraries one by one with the following interactive command:

...

Code Block
languagebash
themeEmacs
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/default-java/jre/bin/java" 1073;

Check if your added JVM java command has been processed by running:

Code Block
languagebash
themeEmacs
user@machine:~$ update-alternatives --list java
/usr/lib/jvm/default-java/jre/bin/java
/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java
/usr/lib/jvm/java-8-oracle/jre/bin/java
/usr/lib/jvm/ramdisk-java-8-oracle/jre/bin/java

Anchor
InstallScripting
InstallScripting
Scripting

Doing this task one by one is pretty tedious, we provide a shell script ito facilitate the work.

...

Code Block
languagebash
themeEmacs
#/usr/lib/jvm/default-java/jre/bin
sudo update-alternatives --install "/usr/bin/ControlPanel" "ControlPanel" "/usr/lib/jvm/default-java/jre/bin/ControlPanel" 1073;
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/default-java/jre/bin/java" 1073;
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/default-java/jre/bin/javaws" 1073;
sudo update-alternatives --install "/usr/bin/jcontrol" "jcontrol" "/usr/lib/jvm/default-java/jre/bin/jcontrol" 1073;
sudo update-alternatives --install "/usr/bin/jjs" "jjs" "/usr/lib/jvm/default-java/jre/bin/jjs" 1073;
sudo update-alternatives --install "/usr/bin/keytool" "keytool" "/usr/lib/jvm/default-java/jre/bin/keytool" 1073;
sudo update-alternatives --install "/usr/bin/orbd" "orbd" "/usr/lib/jvm/default-java/jre/bin/orbd" 1073;
sudo update-alternatives --install "/usr/bin/pack200" "pack200" "/usr/lib/jvm/default-java/jre/bin/pack200" 1073;
sudo update-alternatives --install "/usr/bin/policytool" "policytool" "/usr/lib/jvm/default-java/jre/bin/policytool" 1073;
sudo update-alternatives --install "/usr/bin/rmid" "rmid" "/usr/lib/jvm/default-java/jre/bin/rmid" 1073;
sudo update-alternatives --install "/usr/bin/rmiregistry" "rmiregistry" "/usr/lib/jvm/default-java/jre/bin/rmiregistry" 1073;
sudo update-alternatives --install "/usr/bin/servertool" "servertool" "/usr/lib/jvm/default-java/jre/bin/servertool" 1073;
sudo update-alternatives --install "/usr/bin/tnameserv" "tnameserv" "/usr/lib/jvm/default-java/jre/bin/tnameserv" 1073;
sudo update-alternatives --install "/usr/bin/unpack200" "unpack200" "/usr/lib/jvm/default-java/jre/bin/unpack200" 1073;
#/usr/lib/jvm/default-java/jre/lib
sudo update-alternatives --install "/usr/bin/jexec" "jexec" "/usr/lib/jvm/default-java/jre/lib/jexec" 1073;
#/usr/lib/jvm/default-java/bin
sudo update-alternatives --install "/usr/bin/appletviewer" "appletviewer" "/usr/lib/jvm/default-java/bin/appletviewer" 1073;
sudo update-alternatives --install "/usr/bin/extcheck" "extcheck" "/usr/lib/jvm/default-java/bin/extcheck" 1073;
sudo update-alternatives --install "/usr/bin/idlj" "idlj" "/usr/lib/jvm/default-java/bin/idlj" 1073;
sudo update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/default-java/bin/jar" 1073;
sudo update-alternatives --install "/usr/bin/jarsigner" "jarsigner" "/usr/lib/jvm/default-java/bin/jarsigner" 1073;
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/default-java/bin/javac" 1073;
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/default-java/bin/javadoc" 1073;
sudo update-alternatives --install "/usr/bin/javafxpackager" "javafxpackager" "/usr/lib/jvm/default-java/bin/javafxpackager" 1073;
sudo update-alternatives --install "/usr/bin/javah" "javah" "/usr/lib/jvm/default-java/bin/javah" 1073;
sudo update-alternatives --install "/usr/bin/javap" "javap" "/usr/lib/jvm/default-java/bin/javap" 1073;
sudo update-alternatives --install "/usr/bin/javapackager" "javapackager" "/usr/lib/jvm/default-java/bin/javapackager" 1073;
sudo update-alternatives --install "/usr/bin/java-rmi.cgi" "java-rmi.cgi" "/usr/lib/jvm/default-java/bin/java-rmi.cgi" 1073;
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/lib/jvm/default-java/bin/jcmd" 1073;
sudo update-alternatives --install "/usr/bin/jconsole" "jconsole" "/usr/lib/jvm/default-java/bin/jconsole" 1073;
sudo update-alternatives --install "/usr/bin/jdb" "jdb" "/usr/lib/jvm/default-java/bin/jdb" 1073;
sudo update-alternatives --install "/usr/bin/jdeps" "jdeps" "/usr/lib/jvm/default-java/bin/jdeps" 1073;
sudo update-alternatives --install "/usr/bin/jhat" "jhat" "/usr/lib/jvm/default-java/bin/jhat" 1073;
sudo update-alternatives --install "/usr/bin/jinfo" "jinfo" "/usr/lib/jvm/default-java/bin/jinfo" 1073;
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/lib/jvm/default-java/bin/jmap" 1073;
sudo update-alternatives --install "/usr/bin/jmc" "jmc" "/usr/lib/jvm/default-java/bin/jmc" 1073;
sudo update-alternatives --install "/usr/bin/jps" "jps" "/usr/lib/jvm/default-java/bin/jps" 1073;
sudo update-alternatives --install "/usr/bin/jrunscript" "jrunscript" "/usr/lib/jvm/default-java/bin/jrunscript" 1073;
sudo update-alternatives --install "/usr/bin/jsadebugd" "jsadebugd" "/usr/lib/jvm/default-java/bin/jsadebugd" 1073;
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/lib/jvm/default-java/bin/jstack" 1073;
sudo update-alternatives --install "/usr/bin/jstat" "jstat" "/usr/lib/jvm/default-java/bin/jstat" 1073;
sudo update-alternatives --install "/usr/bin/jstatd" "jstatd" "/usr/lib/jvm/default-java/bin/jstatd" 1073;
sudo update-alternatives --install "/usr/bin/jvisualvm" "jvisualvm" "/usr/lib/jvm/default-java/bin/jvisualvm" 1073;
sudo update-alternatives --install "/usr/bin/native2ascii" "native2ascii" "/usr/lib/jvm/default-java/bin/native2ascii" 1073;
sudo update-alternatives --install "/usr/bin/rmic" "rmic" "/usr/lib/jvm/default-java/bin/rmic" 1073;
sudo update-alternatives --install "/usr/bin/schemagen" "schemagen" "/usr/lib/jvm/default-java/bin/schemagen" 1073;
sudo update-alternatives --install "/usr/bin/serialver" "serialver" "/usr/lib/jvm/default-java/bin/serialver" 1073;
sudo update-alternatives --install "/usr/bin/wsgen" "wsgen" "/usr/lib/jvm/default-java/bin/wsgen" 1073;
sudo update-alternatives --install "/usr/bin/wsimport" "wsimport" "/usr/lib/jvm/default-java/bin/wsimport" 1073;
sudo update-alternatives --install "/usr/bin/xjc" "xjc" "/usr/lib/jvm/default-java/bin/xjc" 1073;

...


#sudo update-alternatives --install /usr/lib/xulrunner-addons/

...

plugins/

...

Don't forget to chmod your shell script.

Code Block
languagebash
themeEmacs
user@machine:~$cdlibjavaplugin.so xulrunner-1.9-javaplugin.so /usr/lib/jvm/tools
user@machine:/usrdefault-java/jre/lib/jvmi386/tools$ sudo chmod 744 installDefaultJavaAlternatives.sh 
user@machine:libnpjp2.so 1073;
sudo update-alternatives --install /usr/lib/firefox-addons/plugins/firefox-javaplugin.so firefox-javaplugin.so /usr/lib/jvm/tools$ ls -al installDefaultJavaAlternatives.sh 
-rwxr--r-- 1 root root 6814 Jul 12 11:53 installDefaultJavaAlternatives.sh

Then run it:

Code Block
languagebash
themeEmacs
user@machine:default-java/jre/lib/i386/libnpjp2.so 1073;
#sudo update-alternatives --install /usr/lib/jvm/tools$ sudo ./installDefaultJavaAlternatives.sh

Then run 

Code Block
languagebash
themeEmacs
user@machine:iceape/plugins/iceape-javaplugin.so iceape-javaplugin.so /usr/lib/jvm/tools/sudo updatedefault-java/jre/lib/i386/libnpjp2.so 1073;
#sudo update-alternatives -s default-java

Then check again that everything is correct with your Java Update Alternatives Environment.

...

Now it's time to unlink /etc/alternatives with the JVM we want to uninstall. 

Usually one has to uninstall each java commands, tools or libraries one by one with the following interactive command:

Code Block
languagebash
themeEmacs
-install /usr/lib/iceweasel/plugins/iceweasel-javaplugin.so iceweasel-javaplugin.so /usr/lib/jvm/default-java/jre/lib/i386/libnpjp2.so 1073;
#sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/default-java/jre/lib/i386/libnpjp2.so 1073;
#sudo update-alternatives --install /usr/lib/midbrowser/plugins/midbrowser-javaplugin.so midbrowser-javaplugin.so /usr/lib/jvm/default-java/jre/lib/i386/libnpjp2.so 1073;
#sudo update-alternatives --install /usr/lib/xulrunner-addons/plugins/libjavaplugin.so xulrunner-javaplugin.so /usr/lib/jvm/default-java/jre/lib/i386/libnpjp2.so 1073;

This shell script mirror the content of the jinfo file described in the Java Environment Tutorial.

This shell script file contains various known plugins. However at this time we only describe the Firefox Java plugin support. It is why we suggest the other plugin support as comments.

Usually we store those shell scripts under /usr/lib/jvm/tools. This one is called installDefaultJavaAlternatives.sh.

Don't forget to chmod your shell script.

Code Block
languagebash
themeEmacs
user@machine:~$cd /usr/lib/jvm/tools
user@machine:/usr/lib/jvm/tools$ sudo chmod 744 installDefaultJavaAlternatives.sh 
user@machine:/usr/lib/jvm/tools$ ls -al installDefaultJavaAlternatives.sh 
-rwxr--r-- 1 root root 6814 Jul 12 11:53 installDefaultJavaAlternatives.sh

Then run it:

Code Block
languagebash
themeEmacs
user@machine:/usr/lib/jvm/tools$ sudo ./installDefaultJavaAlternatives.sh

Then run 

Code Block
languagebash
themeEmacs
user@machine:/usr/lib/jvm/tools/sudo update-java-alternatives -s default-java

Sometimes the previous command fails because default-java refers to an existing JVM:

Code Block
languagebash
themeEmacs
user@machine:/usr/lib/jvm/tools$ sudo update-java-alternatives -s default-java
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/appletviewer for appletviewer not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/extcheck for extcheck not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/idlj for idlj not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jarsigner for jarsigner not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jar for jar not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javac for javac not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javadoc for javadoc not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javafxpackager for javafxpackager not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javah for javah not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javapackager for javapackager not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/javap for javap not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jcmd for jcmd not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jconsole for jconsole not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jdb for jdb not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jdeps for jdeps not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jhat for jhat not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jinfo for jinfo not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jmap for jmap not registered; not setting
update-alternatives: error: alternative /usr/lib/jvm/ramdisk-java-8-oracle/bin/jmc for jmc not registered; not setting
...

In our configuration .default-java.jinfo refers to .ramdisk-java-8-oracle.jinfo:

Code Block
languagebash
themeEmacs
user@machine:/usr/lib/jvm$ ls -al .default-java.jinfo 
lrwxrwxrwx 1 root root 30 Jul 12 14:29 .default-java.jinfo -> ./.ramdisk-java-8-oracle.jinfo

The .default-java.jinfo is linked to .ramdisk-java-8-oracle.jinfo who use ramdisk-java-8-oracle as its name. This the reason why the previous command failed.

Code Block
languagetext
name=ramdisk-java-8-oracle
priority=1073
section=main

It means that ramdisk-java-8-oracle should be installed through the Update Alternatives mechanism before we can set the alternatives to default-java or you define a jinfo file with a different priority number.

Then check again that everything is correct with your Java Update Alternatives Environment.

Anchor
Uninstall
Uninstall
Uninstall

Now it's time to unlink /etc/alternatives with the JVM we want to uninstall. 

Anchor
UninstallCommandLine
UninstallCommandLine
Command Line

Usually one has to uninstall each java commands, tools or libraries one by one with the following interactive command:

Code Block
languagebash
themeEmacs
sudo update-alternatives --remove "java" "/usr/lib/jvm/default-java/jre/bin/java";

Anchor
UninstallScripting
UninstallScripting
Scripting

Doing this task one by one is pretty tedious, we provide a shell script ito facilitate the work.

Code Block
languagebash
themeEmacs
#/usr/lib/jvm/default-java/jre/bin
sudo update-alternatives --remove ControlPanel /usr/lib/jvm/default-java/jre/bin/ControlPanel;
sudo update-alternatives --remove java /usr/lib/jvm/default-java/jre/bin/java;
sudo update-alternatives --remove javaws /usr/lib/jvm/default-java/jre/bin/javaws;
sudo update-alternatives --remove jcontrol /usr/lib/jvm/default-java/jre/bin/jcontrol;
sudo update-alternatives --remove jjs /usr/lib/jvm/default-java/jre/bin/jjs;
sudo update-alternatives --remove "java"keytool "/usr/lib/jvm/default-java/jre/bin/java";

Doing this task one by one is pretty tedious, we provide a shell script ito facilitate the work.

Code Block
languagebash
themeEmacs
#/usr/lib/jvm/default-java/jre/binkeytool;
sudo update-alternatives --remove "ControlPanel"orbd "/usr/lib/jvm/default-java/jre/bin/ControlPanel"orbd;
sudo update-alternatives --remove "java"pack200 "/usr/lib/jvm/default-java/jre/bin/java"pack200;
sudo update-alternatives --remove "javaws"policytool "/usr/lib/jvm/default-java/jre/bin/javaws"policytool;
sudo update-alternatives --remove "jcontrol"rmid "/usr/lib/jvm/default-java/jre/bin/jcontrol"rmid;
sudo update-alternatives --remove "jjs"rmiregistry "/usr/lib/jvm/default-java/jre/bin/jjs"rmiregistry;
sudo update-alternatives --remove "keytool"servertool "/usr/lib/jvm/default-java/jre/bin/keytool"servertool;
sudo update-alternatives --remove "orbd"tnameserv "/usr/lib/jvm/default-java/jre/bin/orbd"tnameserv;
sudo update-alternatives --remove "pack200"unpack200 "/usr/lib/jvm/default-java/jre/bin/pack200"unpack200;
#/usr/lib/jvm/default-java/jre/lib
sudo update-alternatives --remove "policytool"jexec "/usr/lib/jvm/default-java/jre/bin/policytool";/lib/jexec;
#/usr/lib/jvm/default-java/bin
sudo update-alternatives --remove "rmid"appletviewer "/usr/lib/jvm/default-java/jre/bin/rmid"appletviewer;
sudo update-alternatives --remove "rmiregistry"extcheck "/usr/lib/jvm/default-java/jre/bin/rmiregistry"extcheck;
sudo update-alternatives --remove "servertool"idlj "/usr/lib/jvm/default-java/jre/bin/servertool"idlj;
sudo update-alternatives --remove "tnameserv"jar "/usr/lib/jvm/default-java/jre/bin/tnameserv"jar;
sudo update-alternatives --remove "unpack200"jarsigner "/usr/lib/jvm/default-java/jre/bin/unpack200";
#/usr/lib/jvm/default-java/jre/libjarsigner;
sudo update-alternatives --remove "jexec"javac "/usr/lib/jvm/default-java/jre/lib/jexec";
#bin/javac;
sudo update-alternatives --remove javadoc /usr/lib/jvm/default-java/bin/javadoc;
sudo update-alternatives --remove "appletviewer"javafxpackager "/usr/lib/jvm/default-java/bin/appletviewer"javafxpackager;
sudo update-alternatives --remove "extcheck"javah "/usr/lib/jvm/default-java/bin/extcheck"javah;
sudo update-alternatives --remove "idlj"javap "/usr/lib/jvm/default-java/bin/idlj"javap;
sudo update-alternatives --remove "jar"javapackager "/usr/lib/jvm/default-java/bin/jar"javapackager;
sudo update-alternatives --remove "jarsigner" "java-rmi.cgi /usr/lib/jvm/default-java/bin/jarsigner"java-rmi.cgi;
sudo update-alternatives --remove "javac"jcmd "/usr/lib/jvm/default-java/bin/javac"jcmd;
sudo update-alternatives --remove "javadoc"jconsole "/usr/lib/jvm/default-java/bin/javadoc"jconsole;
sudo update-alternatives --remove "javafxpackager"jdb "/usr/lib/jvm/default-java/bin/javafxpackager"jdb;
sudo update-alternatives --remove "javah"jdeps "/usr/lib/jvm/default-java/bin/javah"jdeps;
sudo update-alternatives --remove "javap"jhat "/usr/lib/jvm/default-java/bin/javap"jhat;
sudo update-alternatives --remove "javapackager"jinfo "/usr/lib/jvm/default-java/bin/javapackager"jinfo;
sudo update-alternatives --remove "java-rmi.cgi" "jmap /usr/lib/jvm/default-java/bin/java-rmi.cgi"jmap;
sudo update-alternatives --remove "jcmd"jmc "/usr/lib/jvm/default-java/bin/jcmd"jmc;
sudo update-alternatives --remove "jconsole"jps "/usr/lib/jvm/default-java/bin/jconsole"jps;
sudo update-alternatives --remove "jdb"jrunscript "/usr/lib/jvm/default-java/bin/jdb"jrunscript;
sudo update-alternatives --remove "jdeps"jsadebugd "/usr/lib/jvm/default-java/bin/jdeps"jsadebugd;
sudo update-alternatives --remove "jhat"jstack "/usr/lib/jvm/default-java/bin/jhat"jstack;
sudo update-alternatives --remove "jinfo"jstat "/usr/lib/jvm/default-java/bin/jinfo"jstat;
sudo update-alternatives --remove "jmap"jstatd "/usr/lib/jvm/default-java/bin/jmap"jstatd;
sudo update-alternatives --remove "jmc"jvisualvm "/usr/lib/jvm/default-java/bin/jmc"jvisualvm;
sudo update-alternatives --remove "jps"native2ascii "/usr/lib/jvm/default-java/bin/jps"native2ascii;
sudo update-alternatives --remove "jrunscript"rmic "/usr/lib/jvm/default-java/bin/jrunscript"rmic;
sudo update-alternatives --remove "jsadebugd"schemagen "/usr/lib/jvm/default-java/bin/jsadebugd"schemagen;
sudo update-alternatives --remove "jstack"serialver "/usr/lib/jvm/default-java/bin/jstack"serialver;
sudo update-alternatives --remove "jstat"wsgen "/usr/lib/jvm/default-java/bin/jstat"wsgen;
sudo update-alternatives --remove "jstatd"wsimport "/usr/lib/jvm/default-java/bin/jstatd"wsimport;
sudo update-alternatives --remove "jvisualvm"xjc "/usr/lib/jvm/default-java/bin/jvisualvm"xjc;
sudo#sudo update-alternatives --remove "native2ascii" "xulrunner-1.9-javaplugin.so /usr/lib/jvm/default-java/jre/bin/native2ascii"lib/i386/libnpjp2.so;
sudo update-alternatives --remove "rmic" "firefox-javaplugin.so /usr/lib/jvm/default-java/jre/lib/bin/rmic"i386/libnpjp2.so;
sudo#sudo update-alternatives --remove "schemagen" "iceape-javaplugin.so /usr/lib/jvm/default-java/jre/lib/bin/schemagen"i386/libnpjp2.so;
sudo#sudo update-alternatives --remove "serialver" "iceweasel-javaplugin.so /usr/lib/jvm/default-java/jre/lib/bin/serialver"i386/libnpjp2.so;
sudo#sudo update-alternatives --remove "wsgen" "mozilla-javaplugin.so /usr/lib/jvm/default-java/bin/wsgen"jre/lib/i386/libnpjp2.so;
sudo#sudo update-alternatives --remove "wsimport" "midbrowser-javaplugin.so /usr/lib/jvm/default-java/bin/wsimport"jre/lib/i386/libnpjp2.so;
sudo#sudo update-alternatives --remove "xjc" "xulrunner-javaplugin.so /usr/lib/jvm/default-java/jre/lib/bin/xjc";i386/libnpjp2.so;

This shell script mirror the content of the jinfo file described in the Java Environment Tutorial.

This shell script file contains various known plugins. However at this time we only describe the Firefox Java plugin support. It is why we suggest the other plugin support as comments.

Usually we store those shell scripts under /usr/lib/jvm/tools. This one is called removeDefaultJavaAlternatives.sh.

...

Then check again that everything is correct with your Java Update Alternatives Environment.