- Windows 8.1 или Linux (debian) для разработчика Java-android?
- Язык Java /
- Основы языка Java
- Установка Java в Ubuntu 18.04
- Какую версию Java выбрать?
- Установка Java 8 в Ubuntu 18.04
- 1. Как установить OpenJDK в Ubuntu
- 2. Как установить Oracle Java в Ubuntu
- Установка Java 11 в Ubuntu 18.04
- 1. Установка OpenJDK 11
- 2. Установка Oracle Java 11
- Выбор версии Java
- Удаление Java из Ubuntu
- Выводы
- Нужен ли Linux для Java-разработчика? (here we go again. )
- Похожие топики
- 61 комментарий
Windows 8.1 или Linux (debian) для разработчика Java-android?
Язык Java /
Основы языка Java
Встал такой сложный выбор. Сейчас работаю на 7-ке. Хочу переустановить систему. Был опыт работы с Linux — пол года стояла Ubuntu как настольная система.
Хотел бы узнать у специалистов — какие ОС они используют? Планирую разрабатывать приложения для Android и, возможно, фрилансить по этому направлению, или же на удалёнке работать. Какая ОС лучше для программирования на Java?
Intellij IDEA кроссплатформенный — он и там, и там должен нормально работать. В линуксе с драйверами плохо, насколько мне известно.
Используют все что угодно, кому что нравится. И каждый будет доказывать насколько он прав в своем выборе. Холиваров на тему «винда или линукс» неисчислимое множество.
Тем более если вы работали и в 7ке и в убунту — вы вполне можете сами определиться, что вам больше нравится.
В плане работы — без разницы..IDE везде работает 🙂 И в случае необходимости, прикрутить можно все и везде.
Мой выбор для работы — Linux(Ubuntu). С момента установки 12.04 (2 года назад) никаких тормозов и глюков не появилось вообще..Работает как должна работать.
А редко используемую винду дома уже раз 5 переустановил из-за глюков и тормозов..Ну может это мне так не везет)
Когда разработкой всерьёз занимаешься, периодически возникает необходимость то с файлами какие-то операции хитрые проделать (седами, грепами и т.п.), то инструменты какие-то вспомогательные поставить и т.п. В винде постоянно не хватает кучи мелких утилит которые вроде бы обычно не нужны — и приходится то putty качать, то клиенты ftp какие-то, то архиваторы искать специфичные.
В этом смысле все линуксы гораздо нуждам разработчика отвечают. Постоянно оказывается то какая-то вспомогательная тулза на питоне написана (в винде его сначала скачать, потом поставить, потом ещё пути прописать, хм) — то её ещё собрать нужно используя gcc.
В общем в винде вполне можно работать — на работе у меня и на этой и на прошлой винда — но в убунте удобнее. Да и ссылок на файлы в винде удобных так и не появилось. Без них ощутимо костыльно жить. 🙂
Ubuntu 12.04 качайте — у неё поддержка до 17 года. (у 13.04 короче)
Действительно, поставлю ка я стабильную убунту 12. Привязки к WinAPI у меня нету, всегда писал кроссплатформенный софт — на C++/Qt или же Java. Спасибо за советы.
Погуглил — действительно, для прогрера будет лучшим решением линукс, если конечно он не кодит на C# или не привык к Visual Studio. А я с ними не знаком.
По умолчанию там теперь вместо гнома — юнити. Ну как раз виндовс 8 похожа на неё. От гнома тоже не очень далеко ушло. Я думаю установите, поработаете а дальше уж разберётесь, нужно ли вам что-то другое или нет.
У юнити основной недостаток имхо — она не слишком законченная — некоторые настройки нужно отыскивать в гугле и править руками. А в целом ничего — когда привык всё кажется достаточно адекватным.
Ну насчёт здесь не знаю, а в принципе есть такие кто достаточно комфортно себя с виндой чувствует. Правда я из них не вспомню разработчиков такого рода кто и дома активно что-то ваяет. Но в целом они существуют. 🙂
Если же речь вести о вообще других ОС. Ну конечно есть некоторое количество считающих что код невозможно писать на чём-то ином кроме мак-бука. Правда растопыренные пальцы зачастую мешают им работать 🙂
О других версиях линуксов и *nix-ов вообще — они тоже существуют, с самыми разными соображениями — достаточно широка прослойка любителей Fedora и ещё отдельные любители FreeBSD. Однако в целом тут уже сложно говорить о различиях — т.к. линуксовые инструменты им доступны примерно те же — и это уже скорее просто вопрос пристрастий (как выше про интерфейсы — KDE/Gnome/Unity и т.п.)
Имхо гораздо более активно воюеймый вопрос не про ОС а про IDE.
Вы как, убунту-то себе поставили? Там обратите при установке внимание что не обязательно вашу существующую 7-ку грохать. Можно подвинуть просто — у меня на одном из ноутов так и сделано. Правда там нужно внимательным быть в окошке где предлагают разделы выбрать / исправить, но в принципе вроде всё более-менее получается обычно.
Установка Java в Ubuntu 18.04
Java — это очень популярный язык программирования, разработанный в компании Sun Microsystems. Сейчас Java используется для создания различных десктопных программ, веб-приложений, серверных приложений и многого другого. Основная особенность этого языка — это максимальная кроссплатформенность. Программа, написанная для одной системы, будет без проблем работать в другой. Но для программ, написанных на Java, нужна специальная Java-машина. Именно её мы будем сегодня устанавливать.
В этой статье мы рассмотрим, как выполняется установка Java Ubuntu 18.04 для разных версий программы. А также попытаемся разобраться во всём её многообразии.
Какую версию Java выбрать?
Сейчас разработкой Java занимается компания Oracle. До недавнего времени существовало две основных версии виртуальной машины Java:
- Старая седьмая версия;
- Новая восьмая, используемая в большинстве программ.
Платформа распространялась в двух форматах:
- Проприетарном (Oracle Java) — с дополнительными возможностями и поддержкой;
- Открытом (Open JDK) — полностью открытая версия.
Обе платформы выпускались компанией Oracle, но вторая поддерживалась сообществом разработчиков, а первая самой компанией. Сейчас же ситуация немного изменилась. Теперь компания выпускает новую версию Java каждые пол года. Сначала вышла Java 9, 10, а затем 11 и длительность срока поддержки этих версий тоже короткая — всего семь месяцев. Поэтому большинство программ остались работать на Java 8, которая будет официально поддерживаться до 2020 года. Именно её и надо устанавливать в большинстве случаев.
Если вы разработчик, и хотите получить самую свежую версию Java, то стоит устанавливать Java 11. Это LTS-версия, которая будет поддерживаться до 2026 года. В ней было очень много улучшений и изменений, как в плане синтаксиса, так и для распространения. Теперь проприетарная версия доступна бесплатно только для некоммерческого использования. Для коммерческих целей необходимо платить или же устанавливать OpenJDK.
В Ubuntu, да и в других дистрибутивах Java поставляется в двух редакциях:
- JDK или Java Development Kit — содержит полную версию Java, необходимую для разработки на этом языке;
- JRE или Java Runtime Environment — содержит только окружение для выполнения программ.
Здесь, я думаю, надо выбирать то, что вам нужно. Если нет необходимость что-то компилировать на Java, то будет достаточно JRE. А теперь перейдём к установке.
Установка Java 8 в Ubuntu 18.04
1. Как установить OpenJDK в Ubuntu
Если вы хотите установить OpenJDK в Ubutnu, то никаких сторонних репозиториев вам не нужно. Восьмая версия платформы есть в официальном репозитории Ubuntu 18.04. Чтобы установить jdk на Ubuntu используйте:
sudo apt install openjdk-8-jdk
Для установки JRE в Ubuntu выполните:
sudo apt install openjdk-8-jre
После этого вы можете проверить версию Java:
2. Как установить Oracle Java в Ubuntu
К сожалению с недавнего времени репозиторий от Webupdteam работать перестал и теперь единственный рабочий способ получить самую свежую версию java — скачать её из официального сайта. На странице надо отметить галочку Accept License:
Затем вас перенаправит на страницу входа, необходимо войти в свою учетную запись Oracle или создать новую, только после этого начнется загрузка выбранной версии. После завершения загрузки создайте папку /usr/lib/jvm/:
sudo mkdir /usr/lib/jvm/
Затем распакуйте в неё полученный архив:
sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/
Добавьте исполняемый файл java к списку утилиты управления версиями:
sudo update-alternatives —install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_221/bin/java 3
Затем активируйте эту версию:
sudo update-alternatives —config java
Некоторым приложениям нужен путь к исполняемым файлам Java в переменных окружения. Создайте файл /etc/profile.d/javajdk.sh со следующим содержимым:
sudo vi /etc/profile.d/java8jdk.sh
export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_221/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221/
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_221/jre/
export J2SDKDIR=/usr/lib/jvm/jdk1.8.0_221/
export J2REDIR=/usr/lib/jvm/jdk1.8.0_221/jre/
Чтобы загрузить эти переменные выполните:
После этого проверьте правильность установки, посмотрев версию:
Установка Java 11 в Ubuntu 18.04
1. Установка OpenJDK 11
Java 11 — это последняя на данный момент версия Java. Это версия с длительным сроком поддержки, поэтому она будет поддерживаться до 2026 года. Свободная версия есть в официальных репозиториях, поэтому вы можете её оттуда без проблем установить:
sudo apt install openjdk-11-jdk
Или же вы можете установить JRE-редакцию только для запуска программ:
sudo apt install openjdk-11-jre
Далее вы можете посмотреть версию:
2. Установка Oracle Java 11
Для установки этой версии программы необходимо добавить уже другой репозиторий:
sudo add-apt-repository ppa:linuxuprising/java
Затем запустите скрипт установщика. Он скачает пакет с сайта и установит его на ваш компьютер. Вам нужно будет только принять лицензию:
sudo apt install oracle-java11-installer
Проверьте версию Java:
Выбор версии Java
Если вы установили несколько версий Java в систему, то вам нужно выбрать, какая из них будет использоваться по умолчанию. Для этого используется утилита update-java-alternatives. Для просмотра списка версий выполните:
sudo update-java-alternatives —list
Затем установите нужную версию с помощью опции —set:
sudo update-java-alternatives —set oracle-java-8
Удаление Java из Ubuntu
Чтобы удалить ненужную больше версию Java, используйте такую же команду, которую использовали для установки, только с опцией purge:
sudo apt purge oracle-java11-installer
sudo apt purge openjdk-11*
sudo apt purge openjdk-8*
Затем вы можете удалить PPA-репозиторий:
sudo add-apt-repository —remove ppa:linuxuprising/java
Чтобы удалить java 8 надо удалить папку, в которую вы её распаковали:
sudo rm -Rf /usr/lib/jvm/jdk1.8.0_221/
Выводы
В этой статье мы разобрали, как установить Java на Ubuntu 18.04. Я думаю, теперь вы знаете, какая версия вам нужна и как всё правильно установить. Надеюсь, информация из статьи была вам полезной.
Нужен ли Linux для Java-разработчика? (here we go again. )
Знаю, что был очень похожий топик dou.ua/forums/topic/475 и, как я понял, его можно свести к двум противоположным мнениям: 1) как среда разработки, Linux ничего не дает программисту по сравнению с Windows, кроме доп. геморроя; 2) разрабатывать лучше в среде, в которой будет работать приложение (RHEL, CentOS и т.п.).
Тем в нем, я не нашел четких ответов / единства мнений по следующим вопросам:
1) насколько в реале «знание Linux» является для работодателей ценным/важным в резюме Java-разработчика, особенно начинающего?
2) если является ценным/важным, в какой части Java-разработчику нужно «знать» Linux и для чего? Понимание файловой системы и разрешений? Написание беш-скриптов? Понимание особенностей архитектуры ОС -nix? .
3) если Linux действительно упрощает разработку Java-приложений, то чем (в т.ч. в сравнении с Windows)? Какой дистрибутив?
P.S. Лично у меня пока (может к сожалению) быть не очень большой и информативный опыт с Linux:
— Linux Mint я пытался сделать основным десктопным ОС для ноутбука, но удалил после того, как оказалось, что: 1) чувствительность мышки нормально можно настроить только с криптическим беш-скриптом в автозагрузке (об этом были исписаны целые форумы), 2) нет нормальной поддержки гибридных видеокарт, 3) скромная (по сравнению с Windows) автономность работы ноутбука;
— на CentOS на виртуалке разворачивал сервер Glassfish. Работало.
В избранное В избранном 0
Похожие топики
61 комментарий
1) как среда разработки, Linux ничего не дает программисту по сравнению с Windows, кроме доп. геморроя;
Linux дает множественные вирт десктопы. Это реально удобно. После того как привыкаешь, работать на одиночном десктопе — просто невозможно :-). На винде есть эмуляторы, но из того что я видел — было уныло.
Linux дает нормальную консоль. Опять таки к консоли привыкнуть нужно. Но тут есть один момент касающийся джабы — поскольку разработка на джабе восновном под линуховые сервера (без графического интерфейсу). Разрабу какгбы нужно немного ориентироваться в консоли чтобы иметь возможность хотябы логи посмотреть, пофиксить чтото итд,
Во всем остальном — разницы нету.
— Linux Mint я пытался сделать основным десктопным ОС для ноутбука, но удалил
Нужен ли Linux для Java-разработчика?
Я бы сказал, что киллер-фича интерфейсов командной строки примерно такая. Можно повторить команду в точности. Можно слегка подредактировать. Можно скопировать команду на другой сервер (например, тестовый). Можно сличить выхлоп (спасибо diff). Запостить в джиру или почту. Попросить клиента сделать «вот эту строчку» на проде, на который у самого нет доступа. Добавить команду в крон и выполнять еженощно. Ну и т.д.
Конечно, можно и пачку скриншотов прислать с обведёнными красным нужными полями и кнопками. Но бык всё-таки лучше © анекдот
Ну и аналогично grep логов может быть намного быстрее и информативнее, чем поиск аналогичной информации в GUI-шном журнале. Особенно если вхождения искомого надо, например, посчитать.
Так вот в плане командных интерфейсов Linux (или, уж если быть точным, инструментарий GNU — а линукс «всего лишь» его природная среда обитания) рулит, точка прописью.
В этом смысле учиться «писать бэш-скрипты» бесполезно, bash такой же язык, как и остальные, только страшненький. Лучше уж пайтон или схему. Учиться имеет смысл вот такой итеративной работе — ввёл команду, получил неожиданный результат, подредактировал и т.д. Всё это никак не поможет собственно в разработке, зато сильно облегчит диагностику и разрешение проблем. Если говорить об основных командах — я бы брал в первую очередь grep, sort, uniq, find, diff, wc и уже упомянутые git и ssh. Хотя может забыл что-то.
Мне нравится на убунте. Все довольно оперативно работает. Бывают проблемы с подключением девайсов, правда, мейзу, например, но всем остальным — доволен.
Может, моя карма, но не получилось его подключить. adb не понимал что это и список девайсов был вот такого формата: . .
Нам его дали на пару часов, поэтому играться с ним времени не было и отдал его деву на винде
Позволяет избежать кучи мороки — например, ssh и git предустановлены (или в репозитариях) — не надо искать «правильную» версию. Редактора и системы контроля версий не норовят \r напихать в текстовые файлы. Работа (через SSH) с удаленным сервером очень прозрачная — одни и те же комманды, одни и те же параметры.
3) если Linux действительно упрощает разработку Java-приложений, то чем (в т.ч. в сравнении с Windows)? Какой дистрибутив?
на большинство пропулярных линуксдистрибютивов вполне можно поставить Eclipse, IntelijIDEA или NetBeans (какие там еще IDE-шки длдя жабы популярны?). так что берешь любой дистр, у которого в репозиториях есть более-менее свежие версии любимой IDE — и вперед)
На худой конец — с офф.сайта качаешь бинарник под линукс нужной разрядности, распаковываешь, и запускаешь главный скрипт (корторый запускает саму IDE-ху) (главное, чтобы java и jvm были установлены в системе)
Помню так запускал IDEA под убунтой (когда убунта у меня стояла).
А насчет каких-то консольных утилит для джавы — хз. Ибо не джавист. Но не думаю, что под линукс консольных утилит для джавы будет меньше, чем под винду (скорее наоборот).
3) скромная (по сравнению с Windows) автономность работы ноутбука;
Детский сад какой то, от куда вы беретесь
если считаешь что не нужен — не учи.
Просто базовое понимание устройства unix нужно что бы не городить гoвна за которое тебя будут ненавидеть и помоить понимающие люди. Когда люди пишут код на жаве вместо того что бы слепить залипуху в одну строчку с двумя пайпами — нужно молотком им пальцы ломать а потом просвящать
мак себе купи как основной комп — будет способствовать просвящению
как среда разработки, Linux ничего не дает программисту по сравнению с Windows, кроме доп. геморроя;
ну вот захотите вы пойти работать в компанию (например, одну скромную конторку с headquarter в mountain view), где винды просто нет, иначе как для специальных целей, а девелопмент воркстейшенс — линукс или мак (который тоже юникс)
и что вы будете делать?
Если для работы, то если с головой дружишь — будешь знать как только он тебе понадобится. Если рабочее место под линухой поднять — да, это надо потрахаться, но не столько с самой линухой сколько с софтом. Если же тупо с сервером иметь дело — там понадобится ну о-очень мало по сравнению со знаниями админа. В общем, не трогай его если он тебе не нужен — знания, которыми не пользуешься, забываются моментально.
Если это ТРЕБОВАНИЯ для поступления на работу — бреши что знаешь. Это не проверяют 🙂
Если рабочее место под линухой поднять — да, это надо потрахаться, но не столько с самой линухой сколько с софтом.
Ні, під вікнами підняти робоче місце так само займає час. Але під лінухою того часу йде рази в три-чотири більше. Починаючи з банального вибору софту, і закінчуюючи ручним прописуванням аліасів шрифтам.
Що особливо дратує, що коли щось доведуть до нормального стану — його відразу припиняють підтримувати, випускаючи абсолютно нову версію, несхожу з попередньою, несумісною, та звісно з новими багами, недоробками, і принципами «я художнєґ, я так бачу».
Ні, під вікнами підняти робоче місце так само займає час. Але під лінухою того часу йде рази в три-чотири більше.
Що особливо дратує, що коли щось доведуть до нормального стану — його відразу припиняють підтримувати, випускаючи абсолютно нову версію, несхожу з попередньою, несумісною, та звісно з новими багами, недоробками, і принципами «я художнєґ, я так бачу».
взагалі то робоче місце можна налаштувати в декілька викликів необхідних команд з консолі, якщо там простий набір Java8 + IDE + . , можна взагалі собі скрипт написати і не паритись, а ось з віндою 100500 лишніх кліків мишкою і т.д. + анприклад встановити Ruby на Вінду, то взагалі окрема тема, як на мене, якщо не треба під .NET писати, то необхідність вінди відпадає, як такої
Саме це я й хотів сказати. 🙂
Я систему як раз поставив так вона і мігрує по дисках і пережила не один ноут без особливої додаткової конфігурації.
1) Ценным совершенно не является
2) Обычно достаточно знать несколько консольных команд (посмотреть список задач, убить процесс, найти строку в логах или конфигах, создать или удалить файл/папку, переключиться на другого пользователя или выполнить команду из-под другого пользователя). Многие девелоперы вообще линукса не знают, и это на поисках работы никак не сказывается.
3) Не упрощает и не усложняет, но багов в любом дистрибутиве явно больше, чем в винде. Скрипты для баша писать проще, чем батники, но гуевых тулов в линуксе меньше и они похуже, чем винде, поэтому в целом комфорт разработки примерно одинаков.
беш-скрипты. (звон трескающегося стекла)
Не понимаю причины такой реакции. Англоязычные произносят тут через «э», так что всего лишь против неизвестной ТСу местной традиции.
Поддерживаю что через «э», но традиция сообщества такова, что нужно троллить все, и всех, и постоянно. Не ищите в этом какой-то логики)
1) насколько в реале «знание Linux» является для работодателей ценным/важным в резюме Java-разработчика, особенно начинающего?
2) если является ценным/важным, в какой части Java-разработчику нужно «знать» Linux и для чего? Понимание файловой системы и разрешений? Написание беш-скриптов? Понимание особенностей архитектуры ОС -nix? .
3) если Linux действительно упрощает разработку Java-приложений, то чем (в т.ч. в сравнении с Windows)? Какой дистрибутив?
2) нет нормальной поддержки гибридных видеокарт
3) скромная (по сравнению с Windows) автономность работы ноутбука;
1. да. в ентерпрайз секторе — просто маст хэв. весь продакшн только на юниксе (по другому не бывает, никто в реальном мире не поставит серверное джава приложение на виндоуз) . чаще всего на продакшене используются различные дистры линукса
2. нужно знать что-то типа этого:
-работа с удаленной консолью (ssh)
-как задеплоить аппликуху на сервер
-как запустить/перезапустить сервер (томкет, джосс и тд), как в нем смотреть логи и где их искать
-уметь пользоваться утилитами — ps, grep, less, редакторами vi/vim или типа того — иногда нужно быстро исправить какой-нить конфиг на сервере, а гуя и удобных полоэкранных графических редакторов текста там нет
-как посмотреть что запущено, как убить процесс (kill dash nine рулит!)
-как запустить бэкап базы на сервере
то есть нужны навыки пользователя консольных систем и средние навыки админа, если ты будешь заниматься деплойментом и продакшн саппортом. но новичков и джуниоров обычно на такие адовые работы не назначают, по крайней мере сразу
3. упрощает то что большинство утилит разработчика (включая те же JDK, maven, ant, и тд) уже входят во многие дистры линукс, либо скачиваются менеджером пакетов за считанные секунды из репозиториев
4. иногда приходится девелопить на винде но запускать что-нибудь на виртуалке в которой стоит линукс, ибо в винде не всегда корректно работают баш-скрипты которые у нас написаны для среды линукс (даже в cygwin)
по поводу дистров — для дома можно выбирать любой, а для продакшена оно обычно уже выбрано до тебя 🙂
в домашнем секторе популярна ubuntu и ее клоны, как наиболее дружественная к пользователю
в ентерпрайзе часто встречается red hat enterprise, естественно без гуя и няшных десктопов
Не попробуешь — не поймешь, что для тебя лучше, т.к. в любом деле вкус играет роль.
У меня на домашнем две ОС: Linux Mint как основная и Win 10 как дополнительная.
На линукс пересел после того, как заебался выяснять, что отожрало пол диска С, почему возрос бут тайм, страдать от неудобной консоли (пытался найти любой адекватный аналог Guake и не нашел). При всем этом, у меня до этого винда жила 2 года без антивируса и жила бы еще столько, если бы я захотел — я знаю, за чем надо следить и как что чистить, что качать, а что — нет. Это я к тому, что руки вроде оттуда, а не потому я не шарю юзать инструмент.
Первое облегчение на линухе — установка программ. Даже когда нет в репозитории, а из сорцов не собирается (что бывает редко) — это не очень портит настоение, т.к. все остальное ставится парой строчек. Плюс я писал пет проект на node.js и работа с консолью значительно ускорила мои действия. Guake — one love. Производительность более заметна и прозрачна, чем на винде, если минимально шарить юникс. Да, не настолько удобно, как на винде. Да и полностью с нее не могу ливнуть — не всегда гимп и онлайн-фш заменит тру виндовый фотошоп. Есть трудности с железом (видеокарта и тачпад). Уверен их можно решить, но это некритично для меня. До этого пару лет назад сидел три месяца на арче (Arch Linux) — юзать можно, но нужно убить много времени, поэтому генка (Gentoo) и арч — не мой выбор.
Плюсы винды: удобство
Минусы: принцип работы системы
Плюсы линукса: прозрачная работа системы, экономит время (если немного шаришь, что делаешь)
Минусы: после винды не так удобно
Исходя из опыта, прихожу к тому, что надо покупать макбук 🙂
винда жила 2 года без антивируса
да, это была 8.1, но я отключил всё, что нашел