Як змінити значення JAVA_HOME
Ubuntu, щоб вказати на Java Oracle?
Чи повинно це вказувати на java-6-sun
або java-6-sun-1.6.0.24
?
Як змінити значення JAVA_HOME
Ubuntu, щоб вказати на 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