How to set JAVA path to JDK 8
You can use "alternatives" to switch between different java versions:
sudo update-alternatives --config java
And also for the java compiler (javac) if you are compiling some java code:
sudo update-alternatives --config javac
If you installed Java 8 from apt openjdk:
sudo apt install openjdk-8-jdk
Then your java home must be: /usr/lib/jvm/java-8-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
If java 8 is not visible in update-alternatives you can install it with:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1000
Then check it's there with:
update-alternatives --list java
Related videos on Youtube
Rishabh
Updated on September 18, 2022Comments
-
Rishabh almost 2 years
Was trying to contribute to some open-source project. And I tried finding the answer online, tried Wikipedia how to set it. None works. This is getting irritating. I need to commit my work. As I run git commit here is what I get:
please make sure JAVA_HOME is set to JDK8
Now, I use JAVA 11. I uninstalled JAVA 11 then tried installing JAVA 8. No success, tried installing 12 again JDK8 is needed.
echo $JAVA_HOME
gives
/usr/lib/jvm/java-12-oracle
java -version
is
12.0.2
I want to install Java 8 and Java 12 both on my computer. And frequently shift between two. I want to be able to work on projects which work with java 8 and those which work with java 12.
dpkg -L openjdk-8-jdk
Gives
/. /usr /usr/lib /usr/lib/jvm /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-amd64/bin /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole /usr/lib/jvm/java-8-openjdk-amd64/include /usr/lib/jvm/java-8-openjdk-amd64/include/jawt.h /usr/lib/jvm/java-8-openjdk-amd64/include/linux /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jawt_md.h /usr/lib/jvm/java-8-openjdk-amd64/lib /usr/lib/jvm/java-8-openjdk-amd64/lib/jconsole.jar /usr/lib/jvm/java-8-openjdk-amd64/man /usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8 /usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1 /usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1/appletviewer.1.gz /usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1/jconsole.1.gz /usr/lib/jvm/java-8-openjdk-amd64/man/man1 /usr/lib/jvm/java-8-openjdk-amd64/man/man1/appletviewer.1.gz /usr/lib/jvm/java-8-openjdk-amd64/man/man1/jconsole.1.gz /usr/share /usr/share/doc /usr/share/doc/openjdk-8-jre-headless /usr/share/doc/openjdk-8-jre-headless/test-amd64 /usr/share/doc/openjdk-8-jre-headless/test-amd64/check-hotspot-hotspot.log.gz /usr/share/doc/openjdk-8-jre-headless/test-amd64/check-jdk-hotspot.log.gz /usr/share/doc/openjdk-8-jre-headless/test-amd64/check-langtools-hotspot.log.gz /usr/share/doc/openjdk-8-jre-headless/test-amd64/failed_tests-hotspot.tar.gz /usr/share/doc/openjdk-8-jre-headless/test-amd64/jtreg-summary-hotspot.log.gz /usr/share/doc/openjdk-8-jre-headless/test-amd64/jtreport-hotspot.tar.gz /usr/share/doc/openjdk-8-jdk
-
Rishabh almost 5 years/usr/lib/jvm/java-8-openjdk-amd64 : There is no such directory it is showing.
-
Radhwane Chebaane almost 5 yearsyes, JAVA_HOME is a directory not a file. It points to the root directory contianing Java install files.
-
Rishabh almost 5 yearssudo update-alternatives --config java shows me only java12. But when I do sudo apt install openjdk-8-jdk. It says openjdk-8-jdk is already the newest version, that means jdk 8 is already installed
-
Radhwane Chebaane almost 5 yearsThen you probably need to tell update-alternatives where is installed the java 8: update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1000
-
Rishabh almost 5 yearsit is showing me error: alternative path /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java doesn't exist
-
Rishabh almost 5 yearsI ran : update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1000
-
Rishabh almost 5 yearsFurther $JAVA_HOME gives me : bash: /usr/lib/jvm/jdk1.8.0: No such file or directory
-
Radhwane Chebaane almost 5 yearsIf you successfully installed openjdk-8-jdk, could you give me the output of this command ? dpkg -L openjdk-8-jdk
-
Rishabh almost 5 yearsI have edited the question.
-
Radhwane Chebaane almost 5 yearsOk, try to set java8 again into alternatives: update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1000 Then check it's there with: update-alternatives --config java
-
Rishabh almost 5 yearsAgain, it is showing me update-alternatives: error: alternative path /usr/lib/jvm/java-8-openjdk-amd64/bin/java doesn't exist
-
Radhwane Chebaane almost 5 yearsIf file /usr/lib/jvm/java-8-openjdk-amd64/bin/java does not exist, then you must reinstall java again:
apt purge java* openjdk*
apt install openjdk-8-jdk
If you still need java 11 install openjdk-11-jdk -
Rishabh almost 5 yearsThis is causing me headaches. sudo apt purge java* openjdk* don't work this causes. sudo apt install openjdk-8-jdk to show me no new installation.