JAVA_HOME está definido no diretório errado

13

Olá colegas usuários do Ubuntu,

Estou tentando aprender a escrever modificações no Minecraft. Para seguir o tutorial que estou usando, preciso executar um "gradlew". O comando é o seguinte

./gradlew setupDecompWorkspace eclipse

Isso produz o seguinte

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.

Obviamente não sei o que fazer ou o que isso significa. Qualquer ajuda é muito apreciada.

Joseph_carp
fonte

Respostas:

29

Antes de executar o comando, tente digitar:

export JAVA_HOME="path_to_java_home"

Onde path_to_java_home é a pasta onde está o seu bin / java.

Se o java estiver instalado corretamente, você poderá encontrar sua localização usando o comando:

readlink -f $(which java)

Não se esqueça de remover bin / java do final do caminho enquanto o coloca em JAVA_HOME

Andrew Onischuk
fonte
Ok, eu fiz o que você disse, no entanto, ele produz os mesmos resultados, exceto que o caminho mudou.
Joseph_carp
1
Se você executar $JAVA_HOME/bin/java -versionapós a exportação, ele funciona bem, mostrando a versão java?
Andrew Onischuk
$ JAVA_HOME / bin / java -version produz o bash: /usr/local/java/jdk1.8.0_20/bin/java: Esse arquivo ou diretório não
existe
2
parece que sua exportação está errada. Por favor, mostre o comando de exportação que você usou. E também mostra a readlink -f $(which java)saída
Andrew Onischuk 27/11
5
você deve configurá-lo para a pasta onde bin / java é que significa export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"nãoexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Andrew Onischuk
13

Para torná-lo automático no Linux / Ubuntu, adicione estas linhas no final do seu .bashrc:

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

Isso executa o java executável e depois sobe um nível de diretório

Para designar a versão / executável padrão do java no Debian / Ubuntu, execute o seguinte procedimento :

sudo update-alternatives --config java

Isso se baseia na resposta anterior de Andrew Onischuk (obrigado!)

Tudor Ilisoi
fonte
Seu trabalho como um encanto. Ele resolveu o meu problema após 3 dias.
Hitesh Sarsava
1

Tente editar / usr / bin / gradle

Comente a linha "export JAVA_HOME = / usr / lib / jvm / default-java" com um #

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

observador de estrelas
fonte
1

Obtenha seu caminho Java usando o comando

whereis java

A seguir, uma saída possível, dependendo da sua versão Java padrão

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

O Maven precisa escolher o local Java (home) para poder exportar o caminho Java usando o seguinte comando

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

Isso permitirá que o Maven escolha a versão e o local do java no arquivo / etc / environment

Opcionalmente, você pode adicionar isso manualmente ao / etc / environment usando o seguinte comando

sudo nano /etc/environment

e edite o JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Jose Mhlanga
fonte