Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 5944

How to set JAVA_HOME from the ubuntu shell on WSL2?

$
0
0

I installed WSL2 on my Windows 10 Home. I want to use Maven (which I verified is installed correctly on Windows).

In an ubuntu shell from Windows Terminal, I set JAVA_HOME in my .profile but it would not get set.I ran these commands to try out the correct way to set JAVA_HOME but they do not work.

user@DESKTOP:/mnt/c/Users/user$ mvnThe JAVA_HOME environment variable is not defined correctlyThis environment variable is needed to run this programNB: JAVA_HOME should point to a JDK not a JREuser@DESKTOP:/mnt/c/Users/user$ JAVA_HOME=/mnt/c/Program\ Files/Java/jdk-11.0.10/binuser@DESKTOP:/mnt/c/Users/user$ cd $JAVA_HOME-bash: cd: too many argumentsuser@DESKTOP:/mnt/c/Users/user$ cd /mnt/c/Program\ Files/Java/jdk-11.0.10/binuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ mvn --versionThe JAVA_HOME environment variable is not defined correctlyThis environment variable is needed to run this programNB: JAVA_HOME should point to a JDK not a JREuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ JAVA_HOME=/mnt/c/'Program\ Files'/Java/jdk-11.0.10/binuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ cd $JAVA_HOME-bash: cd: too many argumentsuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ JAVA_HOME=/mnt/c/'Program\ Files'/Java/jdk-11.0.10user@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ cd $JAVA_HOME-bash: cd: too many argumentsuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ cd /mnt/c/Program\ Files/Java/jdk-11.0.10/binuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ pwd/mnt/c/Program Files/Java/jdk-11.0.10/binuser@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ echo $JAVA_HOME/mnt/c/Program\ Files/Java/jdk-11.0.10user@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$user@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ export JAVA_HOME="/mnt/c/Program Files/Java/jdk-11.0.10"user@DESKTOP:/mnt/c/Program Files/Java/jdk-11.0.10/bin$ cd $JAVA_HOME-bash: cd: too many argumentsuser@DESKTOP:~$ export JAVA_HOME="/mnt/c/Program\ Files/Java/jdk-11.0.10"user@DESKTOP:~$ cd $JAVA_HOME-bash: cd: too many arguments

UPDATE:

I followed user Aran's (unfortunately deleted) answer below - I edited /etc/environment and added

export JAVA_HOME="/mnt/c/Program Files/Java/jdk-11.0.10"

then in .bashrc I added

source /etc/environment

and thought it worked because when I did an env in the ubuntu shell, I saw JAVA_HOME

I installed mvn and it still gives the same error:

$ mvn The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE 

I think it is the space in "Program Files".I do have JDK 11 installed. Verified by navigating to JAVA_HOME/bin and I can see javac.exe.

So the issue is not fixed.

UPDATE 2

Here is what the Maven script tries to do with JAVA_HOME, which may help find the correct workaround :

if [ -z "$JAVA_HOME" ] ; then  JAVACMD=`which java`else  JAVACMD="$JAVA_HOME/bin/java"fiif [ ! -x "$JAVACMD" ] ; then  echo "The JAVA_HOME environment variable is not defined correctly" >&2  echo "This environment variable is needed to run this program" >&2  echo "NB: JAVA_HOME should point to a JDK not a JRE" >&2  exit 1fi

Please note that the script goes through the "else" part, and that the "! -x" part is where it fails.


Note: This is not a duplicate of this question.I do not have access to how Maven is accessing JAVA_HOME.The question is not about cd $JAVA_HOME. It is about using mvn Maven. If Maven is using $JAVA_HOME internally, there is no way I can see how to make it use "$JAVA_HOME"


Viewing all articles
Browse latest Browse all 5944

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>