JAVA_HOME nie jest poprawnie zdefiniowany


14

Zainstalowałem java jdk hotspot 1.7. Kiedy piszę java -version, otrzymuję:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

To jest poprawne.

Próbowałem zainstalować maven i dodałem do /etc/environmentpliku:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

Teraz kiedy piszę mvn, otrzymuję:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

Jednak nie umieszczam znaku „dla JAV_HOME var w pliku środowiska.

Próbuje uciec

”/usr/lib/jvm/jdk1.7.0”/bin/java

ścieżka, tak naprawdę powinno być

/usr/lib/jvm/jdk1.7.0/bin/java

Kiedy dowodzę

$JAVA_HOME

Staje się:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

Jestem pewien, że ścieżka ( /usr/lib/jvm/jdk1.7.0) jest poprawna.


Czy możesz zrobić ls -al /usr/lib/jvmi potwierdzić, że „jdk1.7.0” jest formatem nazwy katalogu? Podczas korzystania z Oracle zazwyczaj używają dziwnych nazw folderów
— Thomas Ward

ls /usr/lib/jvm/java-7i ls "/usr/lib/jvm/java-7"/binwydaj i powinien przynieść mi ten sam wynik (który nie jest pusty). Ostatnia część, java-7, jest wynikiem ręcznej modyfikacji - może i będzie dla ciebie nieco inna. Sprawdź, czy taki folder istnieje (jdk1.7.0).
— użytkownik nieznany

Dostałem total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 po uruchomieniu tego ls -al /usr/lib/jvm polecenia
— Kamoliddin

Należy pamiętać, że aby zobaczyć zmienną w konsoli, to oczekuje się wpisać: echo $VARNAME. Jeśli to zrobisz $VARNAME, wykona to, co jest w tej zmiennej.
— Alexis Wilke,

Odpowiedzi:


15

JAVA_HOMEpowinna być ustawiona na nazwę katalogu, który zawiera ten binkatalog, który zawiera pliki wykonywalne Java (w szczególności javasama).

Zakładając, że masz /usr/lib/jvm/jdk1.7.0katalog, prawdopodobnie zawiera on jrepodkatalog zawierający binkatalog zawierający javapowiązane pliki wykonywalne.

Należy więc prawdopodobnie ustawienie JAVA_HOMEsię /usr/lib/jvm/jdk1.7.0/jrezamiast /usr/lib/jvm/jdk1.7.0.


Instalowanie JDK, nie tylko JRE zwykle prowadzi do katalogu JDK zawierającego katalog bin, a także do katalogu JRE, który sam zawiera katalog bin. Ale JAVA_HOMEzawsze był ustawiony na katalog macierzysty, a nie na jrekatalog.
— użytkownik nieznany

Interesujące, muszę ustawić jdk nie? Zamierzam napisać kod w Javie, skompilować, wdrożyć itp.
— Kamoliddin

@Kamoliddin Jeśli Maven używa $JAVA_HOMEwiedzieć, gdzie javaci inne pliki binarne rozwojowe, to tak, będziesz musiał ustawić go do jdkkatalogu zawierającego bindir, który zawiera te pliki binarne.
— Eliah Kagan

Dzięki, nie wiem, zadziałało po ponownym uruchomieniu, myślę, że nie muszę restartować, aby zastosować zmiany. Nic nie zmieniłem. Zadziałało.
— Kamoliddin

Nie jestem pewien, dlaczego w ogóle używa jdk1.7.0 .. /usr/lib/jvm/javapowinno wystarczyć zarówno dla, jak javai dla javac. Zajmuje się tym alternatywa
— Brian,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.