Jak zmienić wartość JAVA_HOMEw Ubuntu, aby wskazywała na Java Oracle?
Czy powinien wskazywać na java-6-sunczy java-6-sun-1.6.0.24?
Jak zmienić wartość JAVA_HOMEw Ubuntu, aby wskazywała na Java Oracle?
Czy powinien wskazywać na java-6-sunczy java-6-sun-1.6.0.24?
Odpowiedzi:
Ustawiłem linię:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
w moim ~/.bashrcpliku.
/usr/lib/jvm/java7-oraclepowinno być wskazującym dowiązaniem symbolicznym /usr/lib/jvm/java-7-oracle-[version number here].
Powodem, dla którego jest to dowiązanie symboliczne, jest to, że w przypadku nowej wersji maszyny JVM nie musisz aktualizować .bashrcpliku, powinien on automatycznie wskazywać nową wersję.
Jeśli chcesz ustawić JAVA_HOMEzmienne środowiskowe globalnie i na poziomie systemu, oznacza to, że ich użycie powinno być ustawione w /etc/environmentpliku.
oracle-java7-set-defaultrobi pakiet.
Jeśli chcesz to zmienić globalnie i na poziomie systemu;
W
/etc/environment
dodaj tę linię:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOMEnie rozwiązuje się, gdy jest używane w ten sposób PATH=$JAVA_HOME/bin, próbowałem zrestartować, bez efektu. Czy muszę exportalbo set JAVA_HOMEteż w tym pliku lub moim profilu?
aby ustawić Oracle Java SE Development Kit jako domyślną systemową Javę, po prostu pobierz najnowszą wersję Java SE Development Kit stąd, a następnie utwórz katalog w dowolnym miejscu w systemie plików, na przykład /usr/javateraz wypakuj pliki, które właśnie pobrałeś w tym katalogu:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
teraz ustawić JAVA_HOMEzmienną środowiskową:
$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000
upewnij się, że java Oracle jest ustawiona jako domyślna java przez:
$ update-alternatives --config java
dostajesz coś takiego:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/java/jdk1.8.0_05/bin/java 20000 auto mode
1 /opt/java/jdk1.8.0_05/bin/java 20000 manual mode
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
zwróć uwagę na gwiazdkę przed cyframi po lewej stronie, a jeśli poprawna nie jest ustawiona, wybierz właściwą, wpisując jej numer i naciskając klawisz Enter. teraz przetestuj swoją Javę:
$ java -version
jeśli otrzymasz coś takiego, jak poniżej, możesz iść:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
pamiętaj również, że możesz potrzebować uprawnień roota lub być w grupie sudoers, aby to zrobić. Przetestowałem to rozwiązanie zarówno na Ubuntu 12.04, jak i Debianie wheezy i działa na obu.
Jeśli chcesz, aby ta zmienna środowiskowa była dostępna dla wszystkich użytkowników i przy starcie systemu, możesz dodać następujące elementy do /etc/profile.d/java.sh (utwórz ją, jeśli to konieczne):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Następnie w trybie terminala:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
Moje drugie pytanie brzmi - czy powinno wskazywać na java-6-sun czy java-6-sun-1.6.0.24?
Powinien zawsze wskazywać na java-7-oracleodnośniki symboliczne do ostatnio zainstalowanego (zakładając, że zainstalowałeś Javę z repozytoriów Ubuntu, a teraz z pliku do pobrania dostępnego na oracle.com).
java 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
lub java 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Jeśli zajmujesz się programowaniem, musisz wskazać JDK (Java Development Kit). W przeciwnym razie możesz wskazać środowisko JRE (Java Runtime Environment).
JDK zawiera wszystko, co ma JRE, a także więcej. Jeśli wykonujesz tylko programy w języku Java, możesz wskazać środowisko JRE lub JDK.
Należy ustawić JAVA_HOME na podstawie aktualnie używanej Javy.
readlinkwypisze wartość dowiązania symbolicznego dla aktualnej Javy i seddostosuje ją do katalogu JRE:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Jeśli chcesz ustawić JAVA_HOME na JDK, powinieneś przejść w górę o jeden folder więcej:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
Jeśli chcesz używać określonej wersji Java, gdy zainstalowanych jest wiele zestawów JDK, samo ustawienie JAVA_HOME może nie działać.
Musisz użyć, sudo update-alternatives --config javaaby ustawić domyślną Javę.
Zobacz to ; biegać
sudo update-java-alternatives --list
aby wyświetlić listę wszystkich instalacji Java na komputerze według nazwy i katalogu, a następnie uruchom
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
aby wybrać, którego JRE / JDK użyć.
Jeśli chcesz używać różnych JDK / JRE dla każdego zadania Java, możesz uruchomić alternatywne aktualizacje, aby skonfigurować jeden plik wykonywalny Java na raz; możesz biec
sudo update-alternatives --config java[Tab]
aby zobaczyć polecenia Java, które można skonfigurować (java, javac, javah, javaws itp.). I wtedy
sudo update-alternatives --config [javac|java|javadoc|etc.]
skojarzy to zadanie / polecenie Java z określonym pakietem JDK / JRE.
Może być również konieczne ustawienie JAVA_HOME dla niektórych aplikacji: z tej odpowiedzi możesz użyć
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
dla środowiska JRE lub
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
dla JDK.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment