W systemie Ubuntu możliwe jest posiadanie wielu maszyn JVM jednocześnie. Domyślny jest wybierany za pomocą update-alternatives
. Ale to nie ustawia JAVA_HOME
zmiennej środowiskowej z powodu polityki Debiana .
Piszę skrypt uruchamiający (bash), który uruchamia aplikację Java. Ta aplikacja Java wymaga JAVA_HOME
zmiennej środowiskowej. Jak więc uzyskać ścieżkę do JVM, która jest obecnie wybrana update-alternatives
?
echo $(readlink -f /usr/bin/java | sed "s:bin/java::")
, wynik był/usr/lib/jvm/java-7-oracle/jre/
i nie/usr/lib/jvm/java-7-oracle/
Rozwiązanie danadam można łatwo zaadaptować do pobierania ścieżki JDK (tj. nie JRE) zgodnie z wymaganiami:
źródło
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
W
.bashrc
był przydatny dla mnie.źródło
Mówisz, że to polecenie nic dla ciebie nie robi?
źródło
Zainstalowałem java z
a następnie, aby znaleźć lokalizację
źródło
Jako rozszerzenie odpowiedzi danadams:
Przede wszystkim zainstaluj 2. środowisko Java JRE jako 3. opcję Java z priorytetem „3”:
Następnie możesz je wymienić:
Możesz ręcznie ustawić alternatywę, używając tego:
Następnie skrypt może ustawić go w locie, w następujący sposób:
To lepiej ilustruje, co robi polecenie „sed”. Chociaż nadal musisz ustawić linki dla javaw i javac itp., Każde wykonane osobno.
źródło
Jakiś czas temu stworzyłem tutorial na forum Ubuntu, w jaki sposób zainstalować najnowszą wersję JRE / JDK ze strony Java. Obejmuje także sposób włączania go w całym systemie, dodając lokalizację JRE / JDK do zmiennej PATH. Jeśli chcesz, możesz także dodać skrypt JAVA_HOME, wymieniony na końcu tematu.
Sprawdź to: http://ubuntuforums.org/showthread.php?t=1437100
źródło
Jeśli java jest skonfigurowana
update-alternatives
lub została dodana do zmiennej PATH ręcznie, to nie"/usr/bin/java"
jest konieczne wpisywanie na stałe . Korzystam z tego rozwiązania w moim .bashrc:export JAVA_HOME=$(readlink -m $(which java)/../..)
źródło