Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle/jre/bin/java when i run gradle command in terminal

I am working in Ubuntu 16.04. I need to install gradle and the gradle is installed when i checked with sudo apt list --installed command but when i use gradle -version command it shows the following error, JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle/jre/bin/java

In sudo vim /etc/environment file,

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
http_proxy="http://username:password@IP:port no/"
https_proxy="https://IP:port no/"
ftp_proxy="ftp://IP:port no/"

I don't know where i made mistakes. Please help me.

Thanks.

like image 220
Ashok Avatar asked Jun 08 '17 05:06

Ashok


People also ask

How do you fix please set the JAVA_HOME variable in your environment to match the location of your java installation?

To set JAVA_HOME, do the following: Right click My Computer and select Properties. On the Advanced tab, select Environment Variables, and then edit JAVA_HOME to point to where the JDK software is located, for example, C:\Program Files\Java\jdk1.

Why JAVA_HOME is not working?

Verify JAVA_HOME Enter the command echo %JAVA_HOME% . This should output the path to your Java installation folder. If it doesn't, your JAVA_HOME variable was not set correctly. Please make sure you're using the correct Java installation folder, or repeat the steps above.

What happens if JAVA_HOME is not set?

If any program that requires a Java runtime fails to find the JAVA_HOME environment variable upon startup, or if the JAVA_HOME environment variable is misconfigured, it will result in some of the following error messages to be displayed: A Java installation exists but JAVA_HOME has been set incorrectly.

Could not find java set JAVA_HOME or ensure java is in path Ubuntu?

If you do not know the path and you only have openJDK installed, you can type update-alternatives --config java and you should find the path. To set the variable you can write JAVA_HOME=<PATH> followed by export JAVA_HOME .


2 Answers

On a 64bit openSuse 64 42.1 box;

readlink -f $(which java)

provided;

/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/bin/java

But;

export JAVA_HOME=/usr/lib64/jvm/jre-1.8.0-openjdk

is the path that worked and allowed java emulator to run.

So i think we have to manually browse our file system and see what path to choose.

like image 70
MarcoZen Avatar answered Oct 18 '22 08:10

MarcoZen


Today I faced this problem. I am using the default java that comes with your linux distro (so in my case, linux mint).

$ whereis java

This command gave me

java: /usr/bin/java /usr/share/java

So, I opened /user/bin. There was a link to Java. I right clicked it and selected follow original link. This lead me to /usr/lib/jvm/java-11-openjdk-amd64/bin/java. So now that I know where this java is, I opened my .bashrc file, and edited the JAVA_HOME. So for my case,

## My Custom variables
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

This solved the problem.

Now if you are using some other java (say you downloaded from oracle and extracted the zip file ...), then you have to add that location. So for example, if your java is in /home/user/.sdkman/candidates/java/current, then

export JAVA_HOME=/home/user/.sdkman/candidates/java/current
export PATH=$JAVA_HOME/bin:$PATH
like image 25
Qazi Fahim Farhan Avatar answered Oct 18 '22 08:10

Qazi Fahim Farhan