Як змінити значення JAVA_HOMEUbuntu, щоб вказати на Java Oracle?
Чи повинно це вказувати на java-6-sunабо java-6-sun-1.6.0.24?
Як змінити значення JAVA_HOMEUbuntu, щоб вказати на Java Oracle?
Чи повинно це вказувати на java-6-sunабо java-6-sun-1.6.0.24?
Відповіді:
Я ставлю рядок:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
в моєму ~/.bashrcфайлі.
/usr/lib/jvm/java7-oracleмає бути символічним посиланням, що вказує на /usr/lib/jvm/java-7-oracle-[version number here].
Причина, що є символічним посиланням, полягає в тому, що у випадку, якщо є нова версія JVM, вам не потрібно оновлювати .bashrcфайл, він повинен автоматично вказувати на нову версію.
Якщо ви хочете встановити JAVA_HOMEзмінні середовища на глобальному рівні та на системному рівні, у /etc/environmentфайлі слід встановити використання .
oracle-java7-set-defaultзаймається пакет.
Якщо ви хочете змінити це на глобальному рівні та на системному рівні;
В
/etc/environment
додати цей рядок:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOMEне вирішується при такому використанні PATH=$JAVA_HOME/bin, спробував перезапустити, ефекту немає. Чи потрібно мені exportчи set JAVA_HOMEв цьому файлі чи в моєму профілі?
встановити пакет програм для розробки Java SE Oracle в якості системи по замовчуванням Java просто завантажити останню версію пакету програм для розробки Java SE від сюди потім створити каталог де - то , як в файлової системі, наприклад , в /usr/javaданий час витягти файли , які ви тільки що завантажили в цьому каталозі:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
тепер, щоб встановити JAVA_HOMEзмінну вашого середовища:
$ 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
переконайтесь, що Java Oracle встановлена як java за замовчуванням:
$ update-alternatives --config java
ви отримуєте щось подібне:
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:
зверніть увагу на зірочку перед цифрами зліва, і якщо правильна не встановлена, виберіть правильну, ввівши її номер та натиснувши клавішу Enter. тепер протестуйте свою Java:
$ java -version
якщо ви отримаєте щось на кшталт наступного, ви добре піти:
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)
також зауважте, що вам може знадобитися дозвіл root або бути в групі sudoers, щоб мати можливість це зробити. Я тестував це рішення як на ubuntu 12.04, так і на Debian wheezy, і воно працює в обох.
Якщо ви хочете, щоб ця змінна середовище була доступна всім користувачам і при запуску системи, тоді ви можете додати таке /etc/profile.d/java.sh (створити його за потреби):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Потім у термінальному запуску:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
Друге моє запитання - чи слід вказувати на java-6-sun або java-6-sun-1.6.0.24?
Це завжди повинно вказувати на те java-7-oracle, що це посилання на найновіший встановлений (припустимо, що ви встановили Java з репозиторіїв Ubuntu і тепер із завантаження, доступного на oracle.com).
java 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
або java 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Якщо ви робите будь-яку розробку, вам потрібно вказати на JDK (Java Development Kit). В іншому випадку ви можете вказати на JRE (Java Runtime Environment).
JDK містить все, що має JRE та багато іншого. Якщо ви просто виконуєте програми Java, ви можете вказати на JRE або JDK.
Ви повинні встановити JAVA_HOME на основі поточної Java, яку ви використовуєте.
readlinkнадрукує значення символічного посилання для поточної Java та sedвідрегулює його в каталог JRE:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Якщо ви хочете встановити JAVA_HOME на JDK, вам слід перейти на одну папку більше:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
Якщо ви хочете використовувати конкретну версію Java, коли встановлено кілька JDK, просто встановити JAVA_HOME може не працювати.
Потрібно використовувати sudo update-alternatives --config javaдля встановлення Java за замовчуванням.
Зверніться до /ubuntu/121654/how-to-set-default-java-version .
Дивіться це ; бігати
sudo update-java-alternatives --list
щоб перелічити всі установки Java на машині за назвою та каталогом, а потім запустіть
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
вибрати, який JRE / JDK використовувати.
Якщо ви хочете використовувати різні JDK / JRE для кожної задачі Java, ви можете запустити альтернативи оновлення, щоб налаштувати один виконуваний Java одночасно; ти можеш бігати
sudo update-alternatives --config java[Tab]
щоб побачити команди Java, які можна налаштувати (java, javac, javah, javaws тощо). І потім
sudo update-alternatives --config [javac|java|javadoc|etc.]
буде пов’язувати цю задачу / команду Java з певним JDK / JRE.
Можливо, вам також знадобиться встановити JAVA_HOME для деяких програм: з цієї відповіді ви можете скористатися
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
для JRE, або
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
для JDK.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment