JAVA_HOME jest ustawiony na niewłaściwy katalog

13

Witam innych użytkowników Ubuntu,

Staram się nauczyć, jak pisać modyfikacje do Minecraft. Aby wykonać samouczek, którego używam, muszę uruchomić „gradlew”. Polecenie jest następujące

./gradlew setupDecompWorkspace eclipse

Daje to następujące

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.

Oczywiście nie wiem, co robić ani nawet co to oznacza. Każda pomoc jest mile widziana.

Joseph_carp
źródło

Odpowiedzi:

31

Przed uruchomieniem polecenia spróbuj wpisać:

export JAVA_HOME="path_to_java_home"

Gdzie path_to_java_home to folder, w którym znajduje się bin / java.

Jeśli Java jest poprawnie zainstalowana, możesz znaleźć jej lokalizację, używając polecenia:

readlink -f $(which java)

Nie zapomnij usunąć bin / java z końca ścieżki, umieszczając ją w JAVA_HOME

Andrew Onischuk
źródło
OK, zrobiłem to, co powiedziałeś, jednak daje to te same wyniki, z wyjątkiem zmiany ścieżki.
Joseph_carp
1
Jeśli uruchomisz $JAVA_HOME/bin/java -versionpo wyeksportowaniu, czy działa poprawnie, pokazując wersję Java?
Andrew Onischuk
$ JAVA_HOME / bin / java -version daje bash: /usr/local/java/jdk1.8.0_20/bin/java: Brak takiego pliku lub katalogu
Joseph_carp
2
wygląda na to, że eksport jest nieprawidłowy. Pokaż polecenie eksportu, którego użyłeś. Pokaż także readlink -f $(which java)wyniki
Andrew Onischuk
5
powinieneś ustawić go w folderze, w którym bin / java export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"nie znaczyexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Andrew Onischuk
13

Aby ustawić to automatycznie w systemie Linux / Ubuntu, dodaj te linie na końcu .bashrc:

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

Spowoduje to, że java jest wykonywalny, a następnie wspina się na poziom katalogu

Aby wyznaczyć domyślną wersję / plik wykonywalny Java na Debian / Ubuntu, uruchom to raz :

sudo update-alternatives --config java

To opiera się na poprzedniej odpowiedzi Andrew Onischuka (dzięki!)

Tudor Ilisoi
źródło
Działa jak urok. Rozwiązał mój problem po 3 dniach.
Hitesh Sarsava
1

Spróbuj edytować / usr / bin / gradle

Skomentuj wiersz „eksportuj JAVA_HOME = / usr / lib / jvm / default-java” znakiem #

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

starwatcher
źródło
1

Uzyskaj ścieżkę Java za pomocą polecenia

whereis java

Poniżej przedstawiono możliwe dane wyjściowe w zależności od domyślnej wersji Java

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

Maven musi wybrać lokalizację Java (home), aby można było wyeksportować ścieżkę Java za pomocą następującego polecenia

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

Umożliwi to Maven wybranie wersji i lokalizacji java w pliku środowiska / etc /

Opcjonalnie możesz to dodać ręcznie w środowisku / etc /, używając następującego polecenia

sudo nano /etc/environment

i edytuj JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Jose Mhlanga
źródło