JAVA_HOME est défini dans le mauvais répertoire

13

Bonjour chers utilisateurs d'Ubuntu,

J'essaie d'apprendre à écrire des modifications sur Minecraft. Afin de suivre le tutoriel que j'utilise, je dois exécuter un "gradlew". La commande est la suivante

./gradlew setupDecompWorkspace eclipse

Cela donne les éléments suivants

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/java/jdk1.8.0_20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Évidemment, je ne sais pas quoi faire ni même ce que cela signifie. Toute aide est très appréciée.

Joseph_carp
la source

Réponses:

30

Avant d'exécuter la commande, essayez d'entrer:

export JAVA_HOME="path_to_java_home"

Où path_to_java_home est le dossier où se trouve votre bin / java.

Si java est correctement installé, vous pouvez trouver son emplacement, en utilisant la commande:

readlink -f $(which java)

N'oubliez pas de supprimer bin / java de la fin du chemin tout en le plaçant dans JAVA_HOME

Andrew Onischuk
la source
D'accord, j'ai fait ce que vous avez dit, cependant, cela donne les mêmes résultats sauf que le chemin a changé.
Joseph_carp
1
Si vous exécutez $JAVA_HOME/bin/java -versionaprès l'exportation, cela fonctionne-t-il correctement en affichant la version java?
Andrew Onischuk
$ JAVA_HOME / bin / java -version donne bash: /usr/local/java/jdk1.8.0_20/bin/java: Aucun fichier ou répertoire de ce type
Joseph_carp
2
semble que votre exportation est incorrecte. Veuillez afficher la commande d'exportation que vous avez utilisée. Et montrer également la readlink -f $(which java)sortie
Andrew Onischuk
5
vous devez le placer dans le dossier où bin / java signifie export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"nonexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Andrew Onischuk
13

Pour le rendre automatique sur Linux / Ubuntu, ajoutez ces lignes à la fin de votre .bashrc:

JAVA_HOME=$(dirname $( readlink -f $(which java) ))
JAVA_HOME=$(realpath "$JAVA_HOME"/../)
export JAVA_HOME

Cela devient exécutable java, puis monte au niveau d'un répertoire

Pour désigner la version / exécutable Java par défaut sur Debian / Ubuntu, exécutez ceci une fois :

sudo update-alternatives --config java

Cela s'appuie sur la réponse précédente d'Andrew Onischuk (merci!)

Tudor Ilisoi
la source
Son travail comme un charme. Cela a résolu mon problème après 3 jours.
Hitesh Sarsava
1

Essayez de modifier / usr / bin / gradle

Commentez la ligne "export JAVA_HOME = / usr / lib / jvm / default-java" avec un #

ceci: #export JAVA_HOME = / usr / lib / jvm / default-java

starwatcher
la source
1

Obtenez votre chemin Java en utilisant la commande

whereis java

Ce qui suit est une sortie possible en fonction de votre version Java par défaut

java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk1.8.0_241/jre/bin/java

Maven doit choisir l'emplacement Java (home) afin que vous puissiez exporter le chemin Java à l'aide de la commande suivante

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre

Cela permettra à Maven de choisir la version et l'emplacement de Java dans le fichier / etc / environment

Vous pouvez éventuellement l'ajouter manuellement dans l'environnement / etc / à l'aide de la commande suivante

sudo nano /etc/environment

et éditez le JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Jose Mhlanga
la source