Java+Android для школьников. Занятие №15/1. Установка IDE Android Studio на компьютер с Linux Mint. Установка OracleJDK.

На прошлом занятии было дано обещание рассказать об установке интегрированной среды разработки (IDE) Android Studio на компьютер с операционной системой Linux. Хотелось бы сказать хоть несколько слов об этой операционной системе, полюбившейся многим. Она бесплатна, "малоглючна" и в ней почти не заводятся вирусы. Если вам этого мало, то почитайте номера журнала Linux Format, находящиеся в свободном доступе. Однако, придется сразу оговориться, что установка Android Studio в Linux - требует некоторых знаний и умений: необходимо уметь пользоваться программой Терминал или ей подобной, что, в общем-то не так уж и сложно. Большое подспорье иметь "под рукой" сведущего человека, но и сообщество, с которым можно контактировать через Интернет, тоже может помочь. Пожалуйста, регистрируйтесь на нашем сайте, пишите - постараемся ответить!

Сразу скажем, что компьютер, на котором мы будем проводить свои эксперименты с программами для Android, должен быть достаточно мощным, необходимо как минимум 4 гигабайта оперативной памяти, на моем, например, стоит 4-хядерный процессор Intel CORE i3 и 6 гигабайт оперативной памяти. Имея такой ПК нам не понадобится в общем-то и само мобильное устройство, т.к. можно устанавливать и исследовать свои программы на виртуальном устройстве. Об этом мы обязательно поговорим попозже. На моем компьютере стоит 64-разрядная Linux Mint 18.1 'Serena'. Посмотрим как происходит установка на данной операционной системе, подобным образом она будет происходить в Ubuntu и других дистрибутивах, основанных на Debian.

Для начала хочу "обрадовать" пользователей Linux установивших рекомендованное на занятии 2 OpenJDK. Установка, правда, была достаточно легкой. Но для установки Android Studio необходимо наличие Oracle JDK. Кому необходимо удалить установленную OpenJDK с компьютера и поставить Oracle JDK направлю сюда. Для тех, кто не устанавливал еще JDK (Java Development Kit, или набор инструментов для разработчика) на свой компьютер, скажу что его придется скачать с сайта корпорации Oracle, на котором есть и инструкция по установке JDK - http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk...., которая, нужно сказать, малоинформативна. Взамен нее находим такую ссылку, найденную по запросу "how to install jdk on ubuntu" в поисковике www.duckduckgo.com, http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux, часть которой и реализована ниже.

Сразу после установки Linux Mint на моей машине уже стоял OpenJRE. Что было видно после команды
$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

Смотрим где это было установлено:
$ sudo update-alternatives --list java
[sudo] пароль для si:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

теперь OpenJRE и связанные с ней пакеты придется удалить:
$sudo apt-get purge openjdk-\*
...
Пакеты, которые будут УДАЛЕНЫ:
ca-certificates-java* icedtea-8-plugin* icedtea-netx* icedtea-plugin* openjdk-8-jre* openjdk-8-jre-headless*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 6 пакетов, и 62 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 100 MB.
Хотите продолжить? [Д/н]

Скачиваем архив JDK с сайта ORACLE (на момент написания статьи версия JDK была 8.121):

Создаем каталог в приличном для этого месте
$ sudo mkdir /usr/lib/jvm

копируем файлы и каталоги JDK в директорию
$ sudo tar -C /usr/lib/jvm -xzf jdk-8u121-linux-x64.tar.gz

проверяем, что все на месте:
$ ls -l /usr/lib/jvm/jdk1.8.0_121/
итого 25924
drwxr-xr-x 2 uucp 143 4096 дек 13 03:47 bin
-r--r--r-- 1 uucp 143 3244 дек 13 03:46 COPYRIGHT
drwxr-xr-x 4 uucp 143 4096 дек 13 03:46 db
drwxr-xr-x 3 uucp 143 4096 дек 13 03:46 include
-rwxr-xr-x 1 uucp 143 5094116 дек 12 23:10 javafx-src.zip
drwxr-xr-x 5 uucp 143 4096 дек 13 03:46 jre
drwxr-xr-x 5 uucp 143 4096 дек 13 03:47 lib
-r--r--r-- 1 uucp 143 40 дек 13 03:46 LICENSE
drwxr-xr-x 4 uucp 143 4096 дек 13 03:46 man
-r--r--r-- 1 uucp 143 159 дек 13 03:46 README.html
-rw-r--r-- 1 uucp 143 526 дек 13 03:46 release
-rw-r--r-- 1 uucp 143 21116095 дек 13 03:46 src.zip
-rwxr-xr-x 1 uucp 143 110114 дек 12 23:10 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 uucp 143 177094 дек 13 03:46 THIRDPARTYLICENSEREADME.txt

теперь нужно дать знать подсистеме update-alternatives о ссылке на команду java:
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_121/jre/bin/java 1
update-alternatives: используется /usr/lib/jvm/jdk1.8.0_121/jre/bin/java для предоставления /usr/bin/java (java) в автоматическом режиме

проверяем
$ sudo update-alternatives --list java
/usr/lib/jvm/jdk1.8.0_121/jre/bin/java

вроде все нормально
$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

однако команда
$ javac
Приложение 'javac' может быть найдено в следующих пакетах:
* default-jdk
* ecj
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
* openjdk-9-jdk-headless
Попробуйте: sudo apt install

говорит о том, что путь к компилятору не известен системе.

Исправляем ситуацию, редактируем файл .profile в личном каталоге пользователя
$ cd ~
$ gedit .profile

добавляем в конец файла:
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_121
JRE_HOME=/usr/lib/jvm/jdk1.8.0_121/jre
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

применяем изменения

source .profile

убеждаемся, что пути прописываются правильно:
$ echo $PATH
/home/si/bin:/home/si/.local/bin:/home/si/bin:/home/si/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_121/jre/bin:/usr/lib/jvm/jdk1.8.0_121/bin

теперь на команду
$ javac

система должна выдать директивы компилятора, что-то типа такого:
Usage: javac
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing

теперь все готово к установке IDE Android Studio, которую мы установим на следующем занятии.