Энциклопедия мобильной связи

В какой среде писать java. Eclipse, NetBeans или IntelliJ IDEA? Выбираем IDE для Java-разработки

Представляем вашему вниманию адаптацию статьи Мартина Хеллера, программиста и редактора ресурса JavaWorld. Вы, вероятно, уже слышали о тройке самых популярных IDE для разработки на языке Java. Процентов 90 промышленных программистов пользуются либо Eclipse, либо NetBeans или же IntelliJ IDEA, и у каждой из этих IDE есть свои преимущества и недостатки. В этой статье мы постараемся описать их так, чтобы вы поняли, какая из них подходит именно вам. Хотя, конечно, лучше попробовать все три в работе, и выяснить, что лучше всего подходит именно вам. Этого не заменит ни один обзор. Я и ранее работал с этими IDE, но для этого исследования я установил IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE, и NetBeans 8.1 Java EE на ноутбук MacBook Pro. Я тестировал IDE на нескольких open source Java-проектах.

Чего ожидать от IDE

Современная IDE «здорового Java-разработчика» должна поддерживать Java 8, Scala, Groovy, а также другие языки виртуальной машины Java, которые тот регулярно использует. Не оказалась бы лишней и поддержка основных серверов приложений и наиболее популярных веб-структур, в том числе - Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails и Vaadin. IDE должна быть совместима с любыми билдами систем контроля версий, например, Ant, Maven или Gradle, вместе с Git, SVN, CVS, Mercurial или Bazaar. Дополнительно для среды разработки важно уметь работать с базами данных и клиентским слоем вашего стека, обладать поддержкой встроенного JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate, а также API Java Persistence. Наконец, логично надеяться на то, что IDE позволит редактировать, создавать, отлаживать и тестировать системы без лишнего напряжения. Идеально, если среда разработки поддерживает не только интеллектуальное автодополнение кода, но также интеллектуальный рефакторинг и метрики кода. Во многих случаях окажется не лишней поддержка фреймворков для тестирования и заглушек. Если ваша команда использует систему тикетов и CI/CD, нужно, чтобы IDE могла к ним подключиться. А еще решите, нужны ли вам развертывание и отладка в контейнерах и облаках. Мы перечислили только основные ожидания (возможно, вам есть, что добавить), а теперь присмотримся к нашим соперникам.

IntelliJ IDEA


IntelliJ IDEA с точки зрения возможностей и цены поставляется в двух вариантах: бесплатного Community edition, и платного Ultimate edition с расширенной функциональностью. Community edition предназначена для JVM- и Android-разработки. Бесплатная версия поддерживает Java, Kotlin, Groovy и Scala; Android; Maven, Gradle и SBT; работает с системами контроля версий Git, SVN, Mercurial и CVS. Ultimate edition приспособлена для веб- и enterprise-разработки. Эта версия IDE работает не только с Git, SVN, Mercurial и CVS, но также с Perforce, ClearCase и TFS; в ней вы сможете писать на JavaScript и TypeScript; естественно, есть поддержка Java EE, Spring, GWT, Vaadin, Play, Grails и ряда других фреймворков. И, конечно, не обошлось без SQL и инструментов для работы с базами данных. Идея, которой руководствуются разработчики этой IDE, формируя ценовую политику, заключается в том, что её коммерческая версия (Ultimate) займет свое место на компьютерах профессионалов, за счет чего их производительность повысится. Если Java-программист ежегодно зарабатывает $50 тысяч (или того больше), возврат потраченных на платную IDE IntelliJ IDEA инвестиций (500 долларов за годовую подписку) произойдет очень быстро за счет даже незначительного ускорения его работы. В последующие годы цена для бизнеса падает, для стартапов, фрилансеров она существенно ниже, а для студентов, учителей, Java-чемпионов и open source-разработчиков она и вовсе бесплатна. IntelliJ IDEA подкупает своим глубоким пониманием кода, умной эргономикой, встроенными функциями для разработки и поддержкой многих языков.
Рисунок 1. IntelliJ IDEA показывает количество предупреждений (warnings) и предположения, основанные на статистическом анализе Java-кода. Вы можете изучить предположения подробнее, кликнув на них, как показано на картинке; во многих случаях вы получите список с выбором и вариантами исправлений.

Глубокое понимание кода

Подсветка синтаксиса и простое автодополнение кода - обычное дело для любых современных Java-редакторов. IDEA пошла дальше, предлагая «умное автодополнение». Этот термин означает, что среда разработки показывает список наиболее релевантных символов, применимых в данном контексте. Список символов зависит не только от контекста как такового, «общепринятого», но от стиля программирования разработчика, от того, насколько часто он использует те или иные операторы. «Завершение цепочки» и вовсе показывает список применимых символов, допустимых через методы или геттеры в текущем контексте. Кроме того, в случае со статическими членами или константами IDEA автоматически добавляет любые необходимые операторы импорта (import). Во всех случаях автодополнения, IDEA пытается угадать тип символа во время выполнения, уточнить свой выбор и даже применить приведение типов если необходимо. Код Java часто включает фрагменты из других языков в виде строк. IDEA может вводить код SQL, XPath, HTML, CSS или JavaScript в строковые литералы Java. В этом смысле IDE может проводить рефакторинг кода на нескольких языках. Например, если вы переименуете класс в JPA-отображении, IDEA обновит соответствующий класс сущностей и выражений JPA. Во время рефакторинга фрагмента кода, у разработчика возникает одно (вполне естественное) желание: чтобы все дубликаты этого кода также зарефакторились. IDEA Ultimate находит дубликаты и похожие фрагменты и также применяет к ним рефакторинг. IntelliJ IDEA анализирует код при загрузке и непосредственно при вводе. Она указывает на предполагаемые проблемы (как на нашем рисунке выше) и, по желанию, предлагает список вероятных быстрых правок к обнаруженным проблемам.

Эргономика


IntelliJ IDEA спроектирована так, чтобы не выбивать разработчика из состояния потоковой продуктивности, если он уже в него попал. Окно Project, показанное на первом рисунке слева, исчезает по простому клику мышки, чтобы программист мог сосредоточиться на окне редактора кода. На все действия, которые нужны во время написания кода, есть комбинации клавиш для их быстрого вызова, в том числе - определения символов во всплывающих окошках. Поначалу все эти комбинации сложно запомнить, но постепенно к ним привыкаешь, и только ими и пользуешься. Тем не менее, даже если программист не использует комбинации клавиш, как показывает практика, он привыкает к работе в IDEA легко и быстро. Хочется особо отметить отладчик IDEA: значения переменных отображаются непосредственно в окне редактора, рядом с соответствующим исходным кодом. При изменении состояния переменной, цвет подсветки также меняется.

Встроенные инструменты

IntelliJ IDEA обеспечивает единый интерфейс взаимодействия с большинством систем контроля версий, включая Git, SVN, Mercurial, CVS, Perforce и TFS. Вы можете управлять изменениями непосредственно в IDE, что очень удобно. Когда я тестировал IDEA, у меня возникало желание, чтобы последнее изменение в исходном коде показывалось в окне редактора в виде аннотации (как это происходит, например, в Visual Studio). Как оказалось, у IDEA есть для этого специальный плагин. Также IDEA оснащена инструментами для сборки, средой выполнения тестов, инструментами покрытия (coverage tools) и встроенным терминальным окном. У IntelliJ нет собственного профайлера, но с помощью плагинов к ней можно подсоединить сторонние. Например, YourKit, созданный бывшим ведущим разработчиком JetBrains или VisualVM (это переупакованная версия профайлера NetBeans). Отладка в Java может быть мучительной, когда происходят всякие загадочные вещи с классами, исходников которых у вас нет. В комплект IDEA входит декомпилятор для таких случаев. Серверное программирование на Java предполагает частое взаимодействие с базами данных, так что программисты IDEA версии Ultimate оценят удобство инструментов для работы с SQL и БД. Но если кому-то их возможностей будет мало, можно приобрести версию IDEA Ultimate с встроенной SQL IDE (DataGrip). Правда, это будет несколько дороже, чем обычная подписка IDEA Ultimate. IntelliJ IDEA поддерживает все основные серверы приложений JVM, и позволяет разворачивать и проводить отладку на этих серверах, что нивелирует хорошо знакомые всем программистам Java Enterprise трудности. IDEA также поддерживает Docker (с помощью плагина, который добавляет к среде разработки специальное окно инструментов Docker. К слову, плагинов у IDEA - просто море.

Настоящий полиглот

IDEA расширила поддержку кода Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS и других фреймворков. Вы, вероятно, заметили, что не все из них относятся к Java. IDEA непосредственно из коробки «понимает» и другие языки - Groovy, Kotlin, Scala, JavaScript, TypeScript и SQL. Если вы не нашли в этом списке нужного вам языка, в настоящий момент есть 19 языковых плагинов IntelliJ, в частности, для поддержки R, Elm и D.


Eclipse долгие годы уверенно держал пальму первенства по популярности среди Java IDE. Эта среда полностью бесплатная, с открытым исходным кодом, написанным преимущественно на Java. Тем не менее, её модульная архитектура позволяет использовать Eclipse и с другими языками. Проект Eclipse, инициированный IBM, появился в 2001 году. Им хотели заменить семейство сред разработки IBM Visual Age, основанных на Smalltalk. Ну а главной целью, о чем даже название говорит, было затмить Microsoft Visual Studio (eclipse по-английски означает затмение). Портативность Java помогает Eclipse быть кроссплатформенной средой: эта IDE работает на Linux, Mac OS X, Solaris и Windows. Хорошо это или плохо, Java Standard Widget Toolkit (SWT), по крайней мере частично, отвечает за внешний вид Eclipse. Своей производительностью (или, как говорят некоторые доброжелатели, её отсутствию) Eclipse обязана JVM. Eclipse работает довольно медленно, поскольку упирается корнями в довольно старое «железо» и древние версии JVM. Даже сегодня она кажется медлительной, особенно если нацепить на неё много плагинов. Часть расходов ресурсов Eclipse можно отнести на счёт её встроенного инкрементного компилятора, который запускается всякий раз при загрузке файла или обновлении кода. Полезная штука, именно она ловит ошибки при вводе текста. Независимо от сборки, проект Eclipse поддерживает модель контента, которая содержит информацию об иерархии типов, ссылок и объявлениях Java-элементов. Текущая версия Eclipse носит имя Neon (4.6.0). Я инсталлировал Eclipse Java EE IDE для веб-разработчиков (это далеко не единственная опция, вы можете выбрать что-то ещё). Он содержит минимальную Eclipse SDK, а плагины добавляются по требованию. К слову, работа с плагинами в этой IDE - не для слабонервных. Сторонние плагины часто конфликтуют между собой, хотя в их официальной спецификации об этом ничего не сказано.
Рисунок 2. Слева направо расположены четыре панели инструментальных средств Eclipse: Проводник пакетов, редактор Java, структура классов Java и список задач. Проект, загруженный в Eclipse на этом рисунке - JUnit test framework. Панели можно легко поменять местами.

Поддержка плагинов

Экосистема плагинов Eclipse - это одновременно сильная сторона этой IDE и одна из главных её проблем. Именно из-за несовместимости плагинов порой падают целые сборки, и программистам приходится начинать работу сначала. В настоящее время для Eclipse написано более 1700 плагинов, официальных и неофициальных, которые могут работать отлично, а могут из рук вон плохо. Плагины Eclipse, поддерживают более 100 языков программирования и почти 200 фреймворков для разработки приложений. Большинство серверов Java также поддерживаются: если вы обозначите новое соединение с сервером из Eclipse, вы попадете в список папок производителей, где найдете около 30 серверов приложений. Только вариантов Apache Tomcat будет целых девять штук. Коммерческие производители, как правило, собирают свои решения вместе: например, есть только один пункт Red Hat JBoss Middleware, а уже внутри вы найдете WildFly и инструменты EAP-сервера, а также JBoss AS.

Редактирование, рефакторинг и отладка

Первый опыт работы с Eclipse, может привести в замешательство, и даже сбить с толку. Поначалу необходимо настроить Eclipse и привыкнуть к её концептуальной архитектуре рабочих пространств, ракурсов и видов. Всё это определяется плагинами, которые вы установили. Для серверной разработки на Java, вы, вероятно, будете использовать ракурсы Java, Java EE и Java browsing, вид, отображающий структуру пакета (Package Explorer), ракурс отладки, ракурс командной синхронизации веб-инструментов, ракурс разработки баз данных и ракурс отладки базы данных. На практике все обретает смысл, когда вы откроете нужные вам окна. Eclipse практически всегда предлагает несколько способов решения той или иной задачи. Например, вы можете просматривать код с помощью ракурса просмотра Java (Java browsing perspective). Что выбрать - дело вкуса и выбора. Специальный поиск Java позволяет найти объявления, ссылки и вхождения Java-пакетов, типов, методов, полей. Вы также можете использовать быстрый доступ к поиску и предпросмотр. Распространенные паттерны кода можно сгенерировать из шаблонов кода. Рефакторинг Java в Eclipse, поддерживает 23 операции, начиная от общепринятых операций по переименованию и заканчивая менее очевидными преобразованиями (как в книге Мартина Фаулера). Eclipse, поддерживает отладку как локально, так и удаленно, при условии, что вы используете JVM, которая поддерживает удаленную отладку. Отладка довольно стандартна: вы определяете контрольные точки, а затем просматриваете переменные в закладке отладки. Конечно, можно пошагово выполнять свой код и вычислять выражения. У Eclipse - обширнейшая база документации самого разного возраста, ценности и полезности. Увы, обнаружить несоответствующую текущей версии картинку в инструкции, например, с устаревшим интерфейсом и расположением кнопок - обычное дело для этой IDE. К сожалению, проблема запоздалого обновления документации очень характерна для любых проектов с исходным кодом.


NetBeans появилась как студенческий университетский проект в Праге в 1996 году. В 1997 году IDE стала коммерческим продуктом, а в 1999 году её выкупила компания Sun Microsystems (родители Java) и уже на следующий год представила open source-релиз. Актуальная версия 8.1 работает на машинах под управлением ОС Windows, Mac OS X, Linux и Solaris. Ну а пакет portable можно запустить на любых системах, для которых существует Java-машина. Себе я загрузил Java EE bundle, это один из шести возможных пакетов загрузки. Этот бандл поддерживает JavaScript и HTML, GlassFish и Tomcat, но не поддерживает PHP, C/C++/Fortran, Groovy и Grails: их можно получить в пакете «Всё включено» (или просто «All»). Тем не менее, при желании, я в любой момент смогу загрузить поддержку вышеназванных языков, выбрав соответствующий плагин (да и любой другой). Их у NetBeans поменьше, чем у Eclipse, зато они обычно не конфликтуют друг с другом. Этой осенью Oracle (ей NetBeans досталась после поглощения Sun Microsystems) решила передать эту среду разработки под крыло Apache Software Foundation вместе со всеми правами, исходными кодами, торговой маркой, доменом "netbeans.org" и рядом других элементов инфраструктуры. Посему, будущее проекта пока туманно, хотя раньше у системы были определенные родственные привилегии. Так, именно NetBeans первой получила поддержку Java 8 практически сразу после выхода обновленной платформы, и была названа «официальной IDE для Java 8». Впрочем, через месяц после выхода это преимущество было утеряно: именно тогда другие IDE также получили поддержку восьмой Java. Тем не менее, хочу отметить, поддержка Java 8 в NetBeans действительно хороша, и эта IDE отлично подходит для вплетения в «старый» код трюков восьмой версии. Её редакторы, анализаторы кода и конвертеры помогут программисту провести апгрейд кода, используя в нем конструкции, характерные для Java 8 - лямбда-выражения, функциональные операторы и ссылки на методы. Плагины JavaScript в NetBeans 8 отлично справляются с поддержкой Node.js и новейших инструментов JavaScript, таких как Gulp и Mocha, равно как и поддержку интерпретатора JavaScript Nashorn.
Рисунок 3. Здесь NetBeans работает с тем же проектом на основе Maven, что и IntelliJ IDEA был открыт на рисунке 1. Обратите внимание на расширенную функциональность в контекстном меню и подменю рефакторинга

Редактирование и рефакторинг

Редактор NetBeans поддерживает языки, обнаруживает ошибки в то время, когда вы печатаете, и помогает вам с помощью всплывающих подсказок и «умным» автодополнением кода. По субъективному ощущению IDE справляется с этой задачей быстрее, чем Eclipse, но несколько медлительнее IntelliJ IDEA. Кроме того, NetBeans обладает полным спектром инструментов рефакторинга (что показано на рисунке 3), которые позволяют программисту реструктуризировать код, не ломая его, выполнять анализ исходников, а также предлагает широкий набор подсказок для быстрых исправлений или расширения кода. В состав NetBeans входит инструмент проектирования для графического интерфейса пользователя Swing, ранее известный как "Project Matisse". Разработчики высоко оценивают средство автоматизированного рефакторинга Inspect & Transform, появившееся в версии NetBeans 7.1. Оно позволяет провести анализ кода проекта и сделать предлагаемые улучшения. Хотя лично я предпочитаю сначала проверить весь собственный код unit-тестами, и только затем запускать инструменты, которые могут внести радикальные изменения. Я неоднократно страдал от всяческих автоматических исправлений, которые привели к невосполнимым последствиям.

Сборка, отладка и профилирование

У NetBeans есть отличная встроенная поддержка Maven и Ant, а также плагина для Gradle. Я очень обрадовался, когда обнаружил, что проекты Maven воспринимаются системой как «родные». Это означает, что их можно просто открывать, а не импортировать. NetBeans также содержит привлекательное (и полезное) графическое отображение для зависимостей Maven. Отладчик Java NetBeans неплох, но с оговорками. Отдельный визуальный отладчик позволяет программисту делать снимки экрана пользовательского графического интерфейса и изучать интерфейсы приложений, выполненных с помощью JavaFX и Swing. Профайлер NetBeans делает более очевидным то, каким образом используется процессор и память, и обладает отличными инструментами для поиска утечек памяти.

Сравнение тройки гигантов

Я использовал все три IDE, Eclipse, NetBeans и IntelliJ IDEA, в течение многих лет в указанном хронологическом порядке. Всякий раз после перехода на другую IDE я чувствовал, что моя продуктивность повышается. Но даже когда я был твердо уверен, что мой окончательный выбор - IDEA, мне порой приходилось возвращаться к одной из двух оставшихся IDE. Так было, например, в то время, когда Eclipse была единственным инструментом, который поддерживал разработку под Android (сегодня есть Android Studio, текущая официальная IDE для Android, она основана на IntelliJ IDEA). Конечно, все три интегрированные среды разработки имеют своих поклонников и противников. Я знаю множество Java-разработчиков, которые обожают IntelliJ IDEA, равно как и лояльные фанаты Visual Studio C++ и C#. Чаще всего эти люди рады тому факту, что их продуктивность возросла, и стоимость годовой подписки возвращается всего за несколько недель использования платной версии IDEA. Однако пользователи NetBeans и Eclipse также зачастую привязаны к своим инструментам и недоумевают, почему другие программисты готовы платить деньги за IDEA. Начинающим Java-разработчикам я бы советовал держаться подальше от Eclipse. Невзирая на то, что это всё еще самая популярная IDE для Java, новичкам с ней тяжело: заблудиться в дебрях Eclipse легко, причем и во время развертывания системы, и во время выполнения повседневной работы. У Eclipse - самая развернутая экосистема плагинов среди всех IDE, а также наибольшая вероятность «слететь» из-за установки несовместимого набора этих самых плагинов. К сожалению, за время использования Eclipse, я неоднократно должен был удалять очередную поломанную сборку этой IDE и инсталлировать «чистый» бандл. NetBeans хорошо подходит для большинства разработчиков, у неё отличный профайлер, и я порой его использую. Однако предпочитаю заплатить за IntelliJ IDEA Ultimate. Да и будущее NetBeans пока туманно. Для начинающих Java-разработчиков, у которых пока нет средств для покупки инструментария, я рекомендую использовать NetBeans или IntelliJ IDEA Community Edition в зависимости от их задач. Первую стоит выбирать тем, кто занимается кодированием серверов Java, но только если вы не попадаете в категорию тех, кто может получить IntelliJ IDEA Ultimate бесплатно или с огромной скидкой (студенты или те программисты, которые разрабатывают проект open source).

«Легкие» Java IDE

Сегодня большинство Java-разработчиков используют IDEA, NetBeans или Eclipse, но порой возникает необходимость в более «легких» средах разработки или даже в редакторах кода наподобие Sublime Text, emacs или vim, которые поддерживают плагины Java. Ниже я перечислил разумные варианты для тех, кто ищет что-то полегче:
  • DrJava - небольшая бесплатная среда разработки. Её создали для студентов Университета Райса, и она стала довольно популярной: DrJava загрузили уже более 2 млн раз. DrJava призвана развивать разработку, основанную на тестировании (test-driven development). Среда содержит «умный» редактор кода, панель взаимодействия для оценки кода приложения, отладчик уровня источника и инструменты модульного тестирования.
  • BlueJ бесплатная среда разработки на Java, созданная специалистами Кентского университета для начинающих программистов. Эта среда поддерживается Oracle. BlueJ отличается гораздо более лаконичным и простым интерфейсом, чем профессиональные IDE, такие, как NetBeans или Eclipse, и даже содержит специальный учебник по основам ООП.
  • JCreator - ещё одна небольшая Java IDE для Windows, написанная на C++ (из соображений увеличения производительности). Платная версия Pro оснащена отладчиком, поддержкой Ant и code wizards, ну а бесплатная версия (LE) - нет.
  • Eclipse Che - браузерная облачная IDE, поддерживает Java, C++, JavaScript, Python, PHP, Ruby и SQL.

Выбор Java IDE в зависимости от проекта

Я постарался описать важные преимущества каждой из трех самых значительных Java IDE и вскользь упомянул об их полезных маленьких соперниках. Чтобы правильно выбрать IDE нужно взвесить все «за» и «против» и сопоставить их с вашими потребностями и потребностями ваших проектов. Если вы присоединяетесь к команде, будет целесообразно использовать ту же IDE, что и другие разработчики, хотя это и не обязательно. Если ваша команда размещает исходники на GitHub, естественно, будет удобнее, если ваша IDE поддерживает GitHub. Да, вы можете справиться с передачей кода и без IDE, используя клиент GitHub или командную строку git. Но насколько эффективными будут такие вот прыжки между разными системами? Также важно, чтобы IDE поддерживала систему сборки. Например, если это Maven, вряд ли вы захотите пересобрать систему в Ant для локального тестирования. К счастью, все три большие Java IDE поддерживают и Ant, и Maven, и Gradle, либо из коробки, либо с плагином. А вот для «маленьких» IDE это может оказаться неверным. Вполне естественным желанием является поддержка средой разработки версии JRE, которая используется в проекте. При несоответствии версий велика вероятность получить массу лишних багов, которые, например, у вас проявятся, а у других членов команды - нет. Вряд ли такая ситуация хорошо отразится на вашей карме. Откровенно говоря, несоответствие JRE чаще появляется при ошибках в конфигурации, чем при отсутствии поддержки IDE за исключением тех случаев, когда IDE еще не успела обновиться до новой версии Java. Просто поверьте: если ваша IDE полностью поддерживает фреймфорки и технологии, которые используются в проекте, это действительно помогает ускорить работу. Вы, скорее всего, и так справитесь. Но, если, IDE понимает, каким образом JPA statements относятся к классам сущностей и выражений JPA (как IntelliJ), на связанный с JPA код вы потратите гораздо меньше времени чем в случае тотального непонимания. Ну а если IDE поддерживает фреймворк для тестирования и используемый для проекта исполнитель кода, вы сможете проводить тесты, не меняя рабочую среду. Что тоже ускорит процесс разработки. Наконец, работа идет быстрее, если IDE совместима с системой отслеживания ошибок и тикет-системой проекта. Снова-таки, вы можете воспользоваться автономным или веб-клиентом, скажем, JIRA, но сложно не согласиться с тем, что проверять тикеты гораздо быстрее не меняя окно, оставаясь непосредственно в IDE.

Бесплатная или платная?

После тестирования именно от IntelliJ IDEA Ultimate у меня возникло ощущение правильной среды разработки. Этакого Кадиллака мира IDE. Повторюсь: хоть она и не бесплатна, я считаю, что прирост производительности от её использования стоит годовой подписки. Для начинающих, которые не могут себе позволить годовую подписку IntelliJ IDEA Ultimate, я рекомендую использовать NetBeans, а не Eclipse. Конечно, экосистема плагинов Eclipse сегодня развита куда больше, чем у любой другой IDE, однако она очень заросшая и неухоженная: начинающий разработчик рискует увязнуть в дебрях IDE вместо погружения в работу. Я также коснулся «облегченных» альтернатив, две из которых были разработаны специально для учебных целей. Что ж, если вы только-только начинаете изучать языки и вам предпочтительнее минималистичная среда - почему бы и нет?

Почти все книги и уроки по Java для новичков начинаются с описания ООП: какой он замечательный с великолепный. Понятно, поскольку в Яве просто невозможно любое другое программирование, кроме как объектно-ориентированное, то вначале предлагается освоить 40..80 страниц безумных аналогий с иерахией кошечек/собачек/уточек/автомашин, и только после этого предлагается написать «Hello, World!». :-)

При этом стоит заметить, что абсолютно всё обучение Java строится на примитивнейшем выводе результата на консоль. То есть не консольное приложение в привычном понимание, а именно вывод каких-то данных построчно. Ну вот например Turbo Pascal 3.0 вышел в 1985 году и в нём уже была поддержка графических режимов. В 1990 году появился Turbo Vision - очень крутая вещь - аля-Windows только для DOS. А в Яве в 2018 году возможен только вывод на консоль. И вот вся эта восторженность и крутость как-то вдребезги разбивается уже на этапе «Hello, World!»... Хуже наверное это только развлекаться на программируемом калькуляторе МК-61 или МК-52 - а что? там такой же построчный вывод.

Но, самое забавное - это то, что на Java реально можно создавать программы используя визуальное программирование! Я об этом узнал только когда прочитал (или скорее ознакомился) с 500 страничной книгой, где в одной из последних глав, вдруг выяснилось, что для Java существуют нормальные GUI (графические интерфейсы пользователя) и можно оформлять программы с кнопочками, полями ввода и нормальными меню. Спрашивается: зачем вы столько времени «мурыжили» эту паршивую консоль, когда можно было сразу всё делать красиво и аккуратно?

Потратив несколько дней на изучение данного вопроса, я выяснил несколько забавных нюансов.

Первый - GUI для Java есть трёх видов (библиотек): AWT , Swing (кто придумывает такие названия?) и JavaFX .

На сегодняшний день (Java 8 и 9) все они входят в комплект поставки JDK: то есть всё работает из коробки и не нужно заморачиватся с их установкой. Это большой плюс.

Но, AWT - это первая и очень старая реализация, поэтому её использовать не нужно. В общем - некошерно. Swing - тоже некошерно, поскольку там что-то не так замутили и программы из-за него жутко тормозят. Точнее не скажу, не разбирался, но вроде как она официально больше не развивается несколько версий. А вот JavaFX - это гуд и наше светлое будущее.

Есть ещё такая мерзость - java-апплеты , те которые работают в браузере и при этом его намертво «вешают», примерно как Flash, только ещё хуже. К счастью эту/эти штуку/штуки практически уже не используют, поэтому тратить время на их изучение бессмысленно.

Так что единственное на что стоит потратить время - это JavaFX.

Второй момент . Всё не так просто. Рассмотрим Delphi (или Visual Studio, Lazarus, не важно). Даже для «зеленого» новичка создание простой программы (одна кнопка и текстовое поле для вывода) будет происходить так:

  • запускаем Delphi;
  • автоматом создается новый проект с главной формой;
  • выбираем на палитре компонентов кнопку и размещаем на форме; всё визуально
  • аналогично кидаем на форму текстовое поле;
  • при необходимости в панели свойств можно указать текст кнопки, размеры и т.п.;
  • запускаем - Delphi предложит сохраниться, сохраняемся.

То есть мы не написали ни единой строчки кода, IDE - всё сделала сама. Если посмотреть на сгенерированный код, то назвать его простым нельзя - здесь уже требуются определенные знания, но Delphi достаточно умна, чтобы понимать как с ним работать.

Если мы захотим добавить какое-то действие, например при нажатии на кнопку, заполнять текстовое поле фразой «Привет!», то делаем так:

  • два раза кликаем на кнопку (или выбираем событие onClick);
  • Delphi создает код обработчика этого события и перекидывает нас в редактор;
  • набираем название текстового поля и Delphi выдает подсказки, по которым можно соориентироваться что и как делать.

То есть опять же, IDE выполнила всю черновую работу.

Но это в других языках, Java идёт своим путём. Чтобы создать кнопку в JavaFX нужно вручную создать Stage - «театральные подмостки» (название на полном серьёзе!) и на них разместить сцену (Scene). К ней какой-нибудь контейнер в который уже вкладывается прочие элементы.

При этом предполагается, что каждый элемент и каждое его свойство нужно программировать индивидуально. Вот пример на две кнопки и одну label из моей обучающей книги

Response = new Label("Push a Button"); Button btnUp = new Button("Up"); Button btnDown = new Button("Down"); btnUp.setOnAction(new EventHandler() { public void handle(ActionEvent ae) { response.setText("You pressed Up."); } }); btnDown.setOnAction(new EventHandler() { public void handle(ActionEvent ae) { response.setText("You pressed Down."); } }); rootNode.getChildren().addAll(btnUp, btnDown, response); ...

Когда кнопок наберется с десяток, плюс 20 пунктов меню, плюс 30 других компонентов, то код маленьким не покажется. И это ещё без кода, который отвечает за дополнительные свойства, например выравнивание, размеры, шрифт... И вот это второе указывает на то, что обучалки по JavaFX как раз и показывают как писать «fx-код» ручками. Тоска, одним словом...

Но, тут возникает спасительный третий нюанс . Оказывается умные люди (видимо знакомые с полноценными IDE), разработали другой вид приложений, где для генерации «fx-кода» используется описательный xml-файл, который называется fxml , а такие программы менуются как «Приложения FXML JavaFX »

Для меня совершенно удивительно то, что обучение Java не начинается именно с таких приложений. Пусть это не Delphi, но всё-равно это в миллион миллионов раз лучше, чем работать с консолью и забивать себе голову прочим хламом о том, почему нужно использовать стопицот строк с ООП там, где в других языках на это уходит одна простенькая процедура. ;-)

Теперь серьёзно. Если вы никогда не программировали на Java, то можете попробовать сделать это прямо сейчас. На самом деле - это довольно круто, хотя потребуется немного потратить время, чтобы освоится с программами. Если у вас есть опыт работы с «визуальными IDE», то ещё лучше - встретите много знакомого.

JDK

Ява должна быть установлена на компе. Я не буду приводить ссылки как это сделать - гугл в помощь, поскольку всё слишком просто.

IDE

В Яве нет какой-то одной программы - среды разработки, поэтому в Сети встречаются примеры из разных программ. Самые примитивные, вроде Notepad++ годятся только для консольного вывода, но если рассматривать что-то более серьёзное, то выделяются только три кандидата: NetBeans , Eclipse и IntelliJ IDEA .

NetBeans - самая простая программа, которая быстро (относительно остальных) запускается и довольно сносно работает.

Eclipse - тоже неплохой вариант, более мощный чем NetBeans, но слабее чем IntelliJ IDEA.

IntelliJ IDEA - выглядит самой крутой, но за это приходится платить скоростью работы. Стоит отметить, что Android Studio базируется на IntelliJ IDEA, но студия работает почему-то значительно медленней.

Важный момент связан с программированием под Андроид. Из этих трех IDE только IntelliJ IDEA для этого более-менее годится. В Сети масса материалов о программировании под Андроид в Eclipse, но они все уже устаревшие - не тратье время, запуская старенький ADT-плагин и пытаясь хоть что-то с ним сделать. Может быть старый Android SDK и будет работать, но все новые - уже нет.

Я покажу как сделать приложение FXML JavaFX во всех трёх программах, но прежде чем приступать, нужно установить ещё одну программу: SceneBuilder (используйте версию для Java 8). Это ключевая программа, где, собственно и выполняется всё визуальное построение. SceneBuilder самостоятельно может работать без IDE, поэтому можете её запустить и посмотреть как она устроена. На выходе будет fxml-файл, который содержит всю нужную разметку. Этот файл и используется в IDE, вместо написания мегатонны кода. :-)

ТЗ

Создаваемая программа будет очень простой - кнопка и текстовое поле. При нажатии на кнопку в текстовое поле пусть добавляется текст «Привет!».

В каждой программе вам нужно заранее прописать настройку - используемую JDK. Если не можете понять как это сделать, гуглите.

NetBeans

Перед началом работы, нужно подключить SceneBuilder: Сервис - Параметры - Java - JavaFX - Начальная страница Scene Builder . Выберите каталог программы. Настройку достаточно сделать один раз. Это относится ко всем IDE.

Создаём новый проект, где нужно выбрать «Приложение FXML JavaFX».

Жмём «Готово» и, после некоторой работы NetBeans, видим готовые файлы:

  • Myfx.java - это main-файл, который, собственно и запускает всю программу.
  • FXMLDocumentController.java - это «контролёр», где и будет в основном программирование.
  • FXMLDocument.fxml - этот файл хранит визуальную часть.

Теперь запустите программу. Вначале пойдет сборка и компиляция (довольно быстрая), после чего выскочит окно нашей программы.

Это круто, потому что мы не написали ни строчки кода, но уже получили программу с работающей кнопкой. :-)

Если вы правильно указали путь к SceneBuilder, то можете выбрать пункт меню «Открыть» на файле FXMLDocument.fxml . Это же самое произойдёт если сделать двойной клик. Откроется SceneBuilder. Если пункта нет, то путь указан не верно, проверьте настройку.

Принцип работы в SceneBuilder един для всех IDE, поэтому пока я опишу только общие моменты, дальше вы уже сами сообразите.

Стоит отметить, что после редактирования файла, закрывать SceneBuilder не нужно. Достаточно только сохраниться (Ctrl+S) и переключиться на IDE - она сама подхватит изменения.

Окно SceneBuilder разделено на три части:

  • слева - наборы компонентов, иерархия и Controller, где указывается основной класс (это важно!)
  • в центре - сама форма, где и происходит визуальное построение.
  • справа - свойства компонентов, разделенные на три закладки (это условное деление). Вкладка Code отвечает за то, что будет использоваться в java-файле.

Построение FX-программ должно начинаться с контейнера. В данном примере NetBeans использовал AnchorPane . Он довольно удобный, позволяя настраивать для вложенных элементов «правильные» отступы. Вкладка Containers содержит другие контейнеры, с которыми вы сможете самостятельно потренироваться (я и сам ещё и половины не освоил:-)).

Иерархия компонентов очень удобная штука, позволяющая быстро выбрать нужный элемент.

По условиям ТЗ у нас должно быть текстовое поле. NetBeans использует Label, но мы не будем ничего удалять, а просто добавим новый элемент TextField на форму (произвольно на ваш вкус).

В SceneBuilder возможен предварительный просмотр (Ctrl+P). В этом режиме отображается только форма и все элементы «без java-программирования».

Теперь важный момент: для того чтобы можно было использовать компонент в java-программе (в нашем коде), следует выполнить две вещи.

Первая - проверить, что указан верный контролёр. В нашем случае NetBeans сам уже всё сделал и указал myfx.FXMLDocumentController .

Как видно - это контролёр из файла FXMLDocumentController.java (пакет.контролёр). Не всегда IDE его указывают, но это важно, поскольку fxml-файл (точнее java-код) использует его для привязки.

Второй момент - используемый компонент должен иметь свой ID - это параметр fx:id . Здесь я указал textField1 .

Вверху появится желтый треугольник сообщения, что якобы нет связки этого id с контролёром. Пока не обращайте на него внимания, об этом пойдет речь дальше.

У кнопки, которая будет заполнять текстовое поле, тоже должен быть свой id, а также метод события onAction (это основное событие компонента, а не onClick, как в Delphi). NetBeans уже об этом позаботился, поэтому нам ничего не придется писать.

На этом визуальное построение можно завершить. Сохраняемся и переключаемся в NetBeans. Видим, что файл FXMLDocument.fxml изменился: добавился textField1 :

Теперь нам нужно как-то использовать текстовое поле в java-коде. В отличие от Delphi, NetBeans не создаёт для этого никакого кода, потому нам придётся добавлять его в «полу-ручном» режиме. Для этого в разных IDE используются различные способы, но общий принцип в том, что нужно установить курсор на нужное поле в редакторе и выполнить некое «действие» . В NetBeans оно называется Установить контролер в меню Источник . (Да в Яве большие проблемы с именованиями...)

После выполнения этой команды, произойдет переход к файлу FXMLDocumentController.java , где в код будет добавлено объявление переменной textField1 :

Обратите внимание на «@FXML» - эта аннотация указывает, что код как-то используется в FXML. После этих изменений SceneBuilder уже не будет выдавать предупреждение, как желтый треугольник ранее. Если ещё раз запустить SceneBuilder, то это можно проверить.

Запускаем программу на выполнение для теста. Теперь наша задача по клику на кнопке заполнить текстовое поле. Как вы уже поняли метод handleButtonAction как раз и выполняет нужную работу. В нём дописываем:

TextField1.setText("Привет!");

Обратите внимание как работает автодополнение кода после того, как будет нажата точка.

По мере набора текста, NetBeans будет сужать область предложений, где можно выбрать нужный вариант. Эта возможность очень здорово облегчает жизнь программистам, поскольку вариантов слишком много и это позволяет избежать различного рода синтаксических ошибок при наборе.

Данная возможность присутствует по всех IDE, хотя есть различия в реализации и использовании.

Запускаем программу и видим, что всё работает как нужно.

Нам пришлось написать всего одну строчку кода, ну и выполнить несколько дополнительных действий в редакторе.

Eclipse

Запуск Eclipse происходит несколько дольше, чем NetBeans. Вначале нужно указать путь к SceneBuilder. Делается это в Window - Preferences - JavaFX .

Обратите также внимание на то, что Eclipse неруссифицированная программа (даже не знаю, есть ли к ней руссификатор).

Создаём новый проект и выбираем JavaFX.

Жмем Next и попадаем на страницу настроек. Здесь я указал название проекта, как и прежде myfx (у меня для разных IDE разные каталоги проектов, поэтому они не пересекаются друг с другом).

Здесь нужно выбрать тип приложения, тип контейнера и имя контролера. Жмем Finish и Eclipse быстро генерирует каркас нашей будущей программы.

Здесь всё очень похоже, только добавлен еще один файл application.css - да, да, в JavaFX можно использовать CSS для настройки оформления! Eclipse сразу сгенерировал для этого файла код подключения.

Запустим программу и убедимся, что нет ошибок.

В отличие от NetBeans, здесь совершенно пустая форма. Откроем её в SceneBuilder с помощью контекстного меню.

И здесь мы видим, что формы нет. Но, на самом деле она есть - просто по умолчанию используется вычисляемый размер (высота и ширина), который в данном случае равен нулю. Компонентов-то нет! В нашем случае это не совсем то, что нужно, поэтому мы выберем BorderPane в иерархическом списке и в свойствах Pref Width и Pref Height укажем какие-то значения. Эти свойства задают «желаемые» ширину и высоту. После этого форма сразу же «проявляется».

Контейнер BorderPane состоит из 4-х частей: top, right, bottom, left и center. Компоненты следует помещать в разные части - от этого будет зависеть их положение при изменении размера окна.

Здесь довольно сложно объяснить словами, просто попробуйте разместить несколько кнопок, а после в предварительном просмотре измените размеры окна.

Я не стал особо мудрить и разместил вверху текстовое поле, а в центре кнопку.

Теперь проверим, что указан контролёр: в данном случае application.SampleController - Eclipse выполнил эту работу за нас.

Теперь нужно указать id у наших элементов. Для кнопки я задал btn1 , а текстовому полю textField1 . У нас опять же возникло сообщение «желтый треугольник».

Для кнопки укажем метод на событие - btn1Click .

Сохранимся и вернёмся в Eclipse. Мы увидим, что файл Sample.fxml обновился, но рядом с некоторыми строками появились значки предупреждения.

Ситуация здесь точно такая же как и в NetBeans - нужно в «полу-ручном» режиме вносить правки. В Eclipse для этого используется контекстное меню по второй кнопке мыши: Quick Fix или горячая клавиша Ctrl+1 (что удобней).

При этом выскакивает подсказка о предполагаемом действии. Например для textField1 предлагается добавить идентификатор в контролёр:

а для кнопки ещё и метод-обработчик события:

При этом, Eclipse немного притормаживает и изменения не сразу отображаются на экране. Тут нужно либо переключиться на файл контролёра, либо немного подождать. В результате в код будет добавлены нужные изменения и значки предупреждений исчезнут.

Добавим наш код как и раньше мы сделали в NetBeans.

Обратите внимание на более интелектуальную работу автодополнения. В автоматическом режиме он немного подтормаживает, но если нажать Ctrl+Пробел (эта же комбинация используется во многих IDE), то позволяет получить и неплохой хелп.

Запускаем нашу программу.

И записываем себе на счёт ещё одну IDE. :-)

IntelliJ IDEA

IntelliJ IDEA запускается довольно неспешно, можно успеть проверить почту. :-)

Опять же указываем путь к SceneBuilder: File - Settings :

И указываем его имя (как обычно - myfx):

IntelliJ IDEA выполнит инициализацию и мы увидим уже знакомые три файла. Запустим программу, чтобы проверить отсутствие ошибок.

Здесь также пустая форма, но зато указан заголовок программы. Если посмотреть на код Main.java , то увидим строчку:

PrimaryStage.setTitle("Hello World");

Это и есть заголовок приложения. В других IDE эта строчка отсутствует, но зато теперь мы знаем для чего нужны «театральные подмостки». ;-)

Переключаемся в SceneBuilder (аналогично Eclipse): второй кнопкой мыши нужно выбрать Open in SceneBuilder .

Здесь также пустая форма, но с контейнером GridPane . Устанавливаем Pref Width и Pref Height , чтобы отобразилась форма.

Сам по себе GridPane представляет собой аля-сетку из ячеек для элементов. Думаю, что тут нет смысла повторяться - все действия будут аналогичными:

  • разместить кнопку и тестовое поле,
  • присвоить им id,
  • для кнопки прописать метод для обработки клика,
  • не забываем проверить, указан ли контролёр (sample.Controller ).

Закрываем SceneBuilder и возвращаемся в IntelliJ IDEA. Здесь нужно добавить идентификаторы id в код, а также создать метод для реакции на нажатие кнопки.

IntelliJ IDEA предлагает для этого два способа. Первый - при наведении мышки на «проблемное место» будет появляться подсказка, на которую можно кликнуть:

Второй - горячая клавиша Alt+Enter

При каждом добавлении происходит переключение на файл контролёра, где можно сразу увидеть изменения.

При этом, заметьте, не добавляется строчка «@FXML». Если мы вручную его добавим перед переменными и методом, то IntelliJ IDEA сразу предложит добавить нужный java-класс:

Вообще IntelliJ IDEA показывает достаточно хорошую сообразительность и выступает помощником в написании кода. Причём делает это самостоятельно без лишних нажатий кнопок.

Ну что ж, добавляем свой код для обработчика и запускаем программу:

Прекрасно, всё работает!

Итого

Главный вывод - на Яве возможно визуальное программирование . Может оно и не идеальное, но вполне годное, особенно для новичков. Изучать язык гораздо интереснее, когда есть какой-то осязаемый результат - ООП, классы и прочие премудрости - это хорошо, но лучше начать с кнопочек, полей ввода, меню и всего того, что подразумевает нормальная программа. А консоль - это скучно и неинтересно.

Три IDE я привел не случайно. В Сети очень много примеров для Явы и все они для разных программ. Лично я ещё не определился со своим предпочтением, поскольку у всех есть как плюсы, так и минусы. Наверное нужно поработать со всеми, тогда и будет понятно.

Но, ключевой момент - это умение работать с SceneBuilder. Построение формы в JavaFX немного отличается от той же Delphi, в первую очередь в использовании сложных контейнеров (они могут быть вложенными друг в друга). Поэтому вначале следует разобраться с ними, после уже можно браться за сами компоненты.

С понятием платформы Java знаком чуть ли не каждый обладатель самого примитивного мобильного телефона. Среда разработки Java предполагает создание универсальных приложений, которые могут использоваться для запуска, вне зависимости от установленной операционной системы. Рассмотрим основные аспекты ее функционирования и применения.

разработки Java?

На самом деле среда разработки является исключительно языком программирования, основанном на универсальных командах, распознаваемых в среде Java Runtime.

Грубо говоря, среды разработки языка Java без изначально установленной платформы в той же Windows работать не будут. Зато такая поддержка предусмотрена изначально, что избавляет любого юзера от необходимости инсталляции дополнительных компонентов.

Применение в компьютерной технике

Изначально данный проект был разработан корпорацией Sun Microsystems, которую позже поддержала компания Oracle.

Но в конечном итоге среда разработки Java от компьютерных или мобильных систем является абсолютно независимой.

Встроенные модули мобильных систем

Если говорит о смартфонах и планшетах, та же версия Java) относится только к использованию графического приложения, позволяющего создать Java-приложение за несколько минут.

На самом деле в самом приложении производится некая адресация или запрос, функции которого предусмотрены в операционной системе.

И это касается мобильных девайсов. Замечали, что иногда со временем либо Windows Phone, либо Android начинает «плеваться» в плане предложения немедленного обновления? Это не что иное, как два компонента:

Что самое печальное, первый компонент с ошибками системы не связан. Эта платформа является полностью независимой и исполняемой в плане команд по умолчанию.

Интегрированная среда разработки JAVA: простейшее применение

То, что эта система применяется в мобильных версиях, ни у кого сомнений не вызывает. Поддерживается среда разработки Java Android, не говоря о "яблочных" продуктах.

Однако же в плане исполняемых приложений все обстоит не так просто. И вот почему.

Исполняемые апплеты

Во-первых, сразу стоит обратить внимание на систему, в которой должен быть установлен соответствующий архиватор (WinRAR - как минимум, лучше - 7-Zip).

Среда разработки Java-программ относится к тем, что данные сохраняются в виде архива, недоступного для открытия стандартными средствами Windows.

Архивируемые данные

В лучшем случае можно применить экстракторы вроде выше указанных. Но если при формировании архива использовались технологии дополнительного (максимального) метода сжатия, тут не поможешь ничем.

Даже обновление архиватора не сможет произвести нужных изменений. Тут придется применять апдейт всей платформы, хотя изначально сообщение о доступном обновлении «висит» в системном трее.

Обновление платформы

Апдейт же производится достаточно просто. Достаточно просто кликнуть в трее на мигающем значке, предлагающем инсталлировать доступное обновление. Время для распознавания может занимать до нескольких минут. Это нормально.

Если не хочется ждать, нет проблем - заходите на официальный ресурс Microsoft и скачивайте программу оттуда. Не нравится такой метод? Устанавливаем JDK или J2SE, что является расширением Java, а потом инсталлируем нужный модуль из выбранных, после чего активация происходит автоматически. По окончании процесса можеть понадобиться полная перезагрузка системы.

Почему Java не зависит от ОС?

Как уже говорилось, этот язык программирования относится к объектно-ориентированным (сродни C+/C++, на которых программируется Windows).

Но его суть такова, что виртуальная Java-машина способна транслировать команды исполняемых приложений в специальные байт-коды, распознаваемые любой компьютерной системой, независимо от ее разработчика. Одинаково хорошо среда разработки Java-программ используется и на PC, и на Intel-платформах, и на мобильных системах Android, Blackberry, iOS и других.

В самой программной среде «операционки» уже имеется встроенный модуль, отвечающий за исполнение команд языка. И он никоим образом не касается специфичных сред вроде Microsoft .NET Framework или любых других, которые производители операционных систем разрабатывают для функционирования собственных апплетов.

Мобильные девайсы

Что касается даже обычных мобильных телефонов без операционной системы на борту, в них тоже имеется изначальная поддержка этой платформы. Как правило, инсталляторы имеют расширения JAR или JAD и совершенно элементарно устанавливаются даже на примитивные телефоны.

В операционных системах можно применять архиваторы вроде WinRAR, которые распознают такие самоизвлекающиеся архивы наподобие SFX-файлов без проблем. При двойном клике на таком файле его содержимое будет экстрагировано автоматически, а архиватор вместе с платформой Java в данном случае срабатывает в фоновом режиме.

Что говорить, ведь даже старые игры на простейшие телефоны можно установить совершенно просто. Хотя и считается, что в них «продвинутые» операционные системы не используются, это не так.

Даже в самых старых моделях типа платформа есть. Иначе как бы телефон функционировал? В этой же системе, как уже понятно, есть и встроенная поддержка, которая отвечает за среды разработки Java.

Что же касается самих команд, используемых при создании приложений, их описание может занять слишком много времени. Но если уж идея создания приложения на основе этого языка все же возникла, лучше установить специализированную программу вроде платформы, предлагаемой средой Delphi очень похож).

Заключение

Как видим, среда разработки Java является универсальной и совместимой с любыми системами. Но работает она намного быстрее, нежели трансляция команд на основе C+/C++. Согласно некоторым исследованиям, скорость работы может быть выше в 20-30 раз, хотя потребление ресурсов памяти находится на отметке рангом выше.

Но если подводить некий итог, стоит отметить действительную универсальность, которую предлагает среда разработки Java. По сути, она совместима со всеми системами, что и делает ее наиболее популярной при создании тех же мультимедийных приложений или игр.

Отдельно стоит сказать, что последние версии Java основаны на поддержке средств обобщенного программирования, в основу которых положены технологии Eiffel и C#, кардинально отличающиеся от средств C++. Тут можно использовать автоматическое преобразование скалярных типов данных и импорт так называемых статических полей, не говоря уже о возможности создания сопутствующей документации с исходным кодом.

В версии Java SE 6 реализовано множество новых функций, которые включают в себя даже распознавание японского и буддистского календарей, возможность создания полноценного HTTP-сервера, ускоренную передачу класс-потоков и сжатых данных с повышением производительности до 70 %, не говоря уже о панели мониторинга JConsole, поддерживающей OpenGL и DirectX.

Это касается в основном графических адаптеров, хотя и может относиться к использованию даже аудиоустройств (чаще всего виртуальных на основе драйверов ASIO4ALL). То же самое касается и некоторых программных синтезаторов или MIDI-клавиатур. Но использование исполняемых Java-апплетов предусмотрено не всегда.

Как создать лучшее Java-приложение , которое будет быстрым, стабильным и надежным? Для этого потребуется не только опытный разработчик с отличными навыками программирования, но и правильная среда разработки Java .

Вы уже должны были понять, что Java-IDE действительно необходима, а особенно такая, которая поддерживает сразу несколько языков программирования.

  • NetBeans — лучшая Java-IDE , развиваемая Oracle ();
  • IntelliJ IDEA — лучшая IDE для Java — разработчиков (премиум Java-IDE );
  • Eclipse — популярная IDE для Java-разработчиков (бесплатное программное обеспечение );
  • Android Studio — Java-IDE , предназначенная для Android-разработчиков ;
  • JDeveloper — бесплатная IDE для упрощения разработки Java-приложений ;
  • DrJava — компактная среда разработки Java-программ ;
  • JEdit — продвинутый редактор кода для Java-разработчиков ;
  • MyEclipse — Java-IDE полного стека для веб-разработки;
  • JCreator — простая IDE для Java-разработки ;
  • GreenFoot — онлайн Java-инструктор и IDE .

Топ 10 Java IDE для быстрой веб-разработки

  1. NetBeans — лучшая Java-IDE, развиваемая Oracle (бесплатное программное обеспечение)

На сегодняшний день лучшая среда разработки Java , созданная разработчиками для разработчиков с целью сделать рабочий процесс максимально простым и эффективным.

С помощью NetBeans можно создавать не только корпоративные веб-приложения, но и мобильное программное обеспечение, приложения для ПК. Кроме этого NetBeans позволяет повторно использовать рабочее пространство проекта на нескольких платформах, таких как Windows , Linux , Mac OS X и Solaris от Oracle .

NetBeans решает большинство проблем, с которыми разработчик может столкнуться в процессе работы. Эта IDE позволяет управлять всеми задачами: анализом, проектированием, отладкой, модульным тестированием, управлением исходным кодом и развертыванием.

В разрабатываемом коде могут быть не выявленные ошибки, которые трудно найти. Но встроенные инструменты NetBeans , такие как анализ статического кода, интеграция плагина FindBug помогут выявить и устранить сложные проблемы в коде. Кроме этого отладчик NetBeans предоставляет возможность быстро перемещаться по коду, устанавливать контрольные точки, добавлять заметки, делать снэпшоты и отслеживать исполнение кода.

Также IDE поставляется с мощным профайлером кода, который помогает оптимизировать производительность приложения (скорость работы и потребление памяти ). Кроме этого она включает в себя визуальный отладчик, позволяющий корректировать создаваемые пользовательские интерфейсы, без необходимости правки кода.

Стоит уделить внимание инструменту Maven , поддерживаемому NetBeans . С его помощью добавление зависимостей производится всего в несколько кликов. Это позволяет избежать лишней загрузки / перестроения индексов.

Давайте посмотрим, за что еще NetBeans считается одной из лучших Java IDE .

Она поддерживает HTML5 , CSS3 , JavaScript (ES 5/6) и Angular JS . NetBeans также поддерживает автоматической завершение для этих языков, а также директивы Angular .

NetBeans позволяет разрабатывать мобильные приложения с помощью таких платформ, как Cordova и PhoneGap . А также с помощью GlassFish и WebLogic развертывать любые веб-приложения и тестировать конечный функционал. Они добавляют к основным возможностям ядра поддержку Java 8 .

NetBeans поддерживает все популярные веб-приложения (Spring / Struts / Wicket ) и библиотеки, такие как PrimeFaces , RichFaces , ICEfaces .

  1. IntelliJ IDEA — лучшая IDE для разработчиков Java (премиум Java-IDE)

Быстрый и надежный инструмент для веб-разработки на Java . Эту среду разработки для Java под Windows развивает компания JetBrains . Она постоянно обновляет и дополняет ее, чтобы она соответствовал потребностям рынка.

IntelliJ IDEA поставляется в двух редакциях. Бесплатная версия предназначена для студентов, преподавателей и разработчиков плагинов. Платная — для организаций, разрабатывающих коммерческие приложения.

IntelliJ Community Edition

Бесплатная версия поддерживает такие платформы, как Android , Swing и JavaFX , Java , Groovy , Kotlin , Scala , Go , Dart , Erlang и Python .

Кроме этого данная IDE является довольно компактной и содержит несколько других функций, таких как выполнение тестов JUnit / TestNG , отладка, автоматическое завершение кода, проверка кода, рефакторинг кода, Ant и визуальный графический редактор GUI .

Также можно воспользоваться четырьмя типами систем контроля версий: Git / GitHub , SVN , Mercurial и CVS . Доступен плагин Docker , обеспечивающий поддержку развертывания веб-приложений. Бесплатная версия также включает в себя Decompiler и ByteCode для выполнения расширенного анализа.

IntelliJ Ultimate Edition

Для начинающих программистов бесплатная IDE предоставляет широкие возможностями, которые помогут им сделать первые шаги в веб-разработке на Java . Более продвинутые пользователи, скорее всего, предпочтут платную версию, которая дает возможность использовать продвинутые функции.

Это превосходная среда разработки Java , поддерживающая многие языки программирования, например JavaScript , TypeScript , SQL , CSS , LESS , Sass , Stylus , CoffeeScript , ActionScript , Ruby и PHP .

Для профессиональной веб-разработки вам понадобится версия Ultimate . Она объединяет в себе такие фреймворки, как Spring MVC , J2EE (JSF / JAX-RS / CDI / JPA ), Grails , Griffin , React , Angular JS , Node.js , Django , Flask , CMS (Drupal / WordPress / Laravel ).

Платная версия имеет дополнительную поддержку контроля версий, например, TFS , Perforce , ClearCase и Visual SourceSafe . В ней доступно множество вариантов настройки стратегии развертывания с использованием Tomcat , TomEE , GAE , GlassFish , JBoss , WebLogic , WebSphere , Geronimo , Jetty и Virgo .

В этой версии реализована поддержка NPM , WebPack , Gulp и Grunt . Она включает в себя такие инструменты, как диаграммы (UML / Dependencies ), матрица зависимостей.

  1. Eclipse — популярная IDE для Java-разработчиков (бесплатное программное обеспечение)

Это современная, кросс-платформенная и свободно распространяемая IDE с открытым исходным кодом, доступная для корпоративной веб-разработки. В 1998 году IBM Software Group решила создать IDE , которая смогла бы закрепиться на рынке и стать одним из его лидеров. Это привело к созданию Eclipse .

Интересно, что Eclipse сама по себе является примером лучших Java-приложений , поскольку написана на Java . Она всегда была стабильной полнофункциональной платформой высочайшего качества для разработки современных веб-приложений.

Eclipse обладает всеми необходимыми функциями, которые должна иметь идеальная Java IDE :

  • Поддержка Java 8.0 и 9.0 ;
  • Рефакторинг кода, редактирование кода с проверкой запроса, инкрементная компиляция, перекрестные ссылки, автоматическое предложение вариантов кода;
  • Интегрированный статический анализ кода;
  • Интеллектуальное завершение кода и быстрое исправление;
  • Удобство и производительность;
  • Поддержка Windows / Linux / Mac OS X .

Актуальная на данный момент версия среды разработки для языка Java — Neon . В ней было реализовано много новых функций:

  • Редактор Java показывает шаблон по умолчанию для размещения +ve / -ve проверок;
  • Теперь IDE помогает классифицировать уровень опасности для конкретных ошибок в коде;
  • Code Assist поддерживает шаблоны подстроки;
  • Появилась возможность настраивать нулевой анализ на основе аннотаций для использования нескольких наборов типов аннотаций;
  • Теперь отладчик принимает дополнительные аргументы отладки, а просмотр ресурсов операционной системы позволяет использовать в отладке информацию о процессах;
  • Моделирование позволило внести значительные улучшения в генерирование кода, редакторы моделей, сравнение моделей и пользовательские графические редакторы.

Как видите, Eclipse содержит много функций, позволяющих экономить время. Вы даже можете создавать собственные шаблоны кода, чтобы повысить скорость разработки.

  1. Android Studio — Java IDE, созданная специально для Android-разработчиков

Современная IDE для разработки приложений Java и Android . Это относительно новый продукт, выпущенный в середине 2013 года. Созданная на базе IntelliJ IDEA , Android Studio обеспечивает оптимальные условия для разработки дизайна и рабочего кода.

Основное предназначение инструмента — ускорение процесса разработки приложений для любого Android-устройства . До его выхода разработчикам приходилось полагаться на Eclipse и плагин ADT . Из-за этого операционная система Android отставала от Apple . После выхода Android Studio популярность Android выросла.

IDE поддерживает целый ряд полезных функций : интеллектуальное редактирование кода, отладка, модульное тестирование и профилирование кода. Рассмотрим каждую из них подробнее.

Крутые функции среда разработки Java для Android :

  • Мгновенное обновление и запуск, чтобы изменения кода немедленно вносились в запущенное приложение без его перезапуска;
  • Встроенный эмулятор легко устанавливается и запускает приложения на различных конфигурациях устройств;
  • Редактор нового поколения позволяет писать качественный код, экономит время и повышает производительность разработки; Можно использовать расширенное автоматическое завершение кода, рефакторинг и проверку кода;
  • Встроенная система сборки (Gradle ) помогает в автоматизации сборки, формировании зависимостей и подготовке пользовательских конфигураций сборки;
  • Gradle — это система сборки под различные устройства. Она позволяет создавать приложения, работающие на всех Android -устройствах;
  • Простая интеграция с системами контроля версий, например, GitHub и SVN ;
  • Возможность подготовки сборки для исполнения на сервере CI , таком как Jenkins и Bamboo ;
  • Шаблоны готового кода помогают упростить и ускорить разработку приложений;
  • Можно проверить свое приложение с помощью JUnit 4 и регрессировать пользовательский интерфейс с помощью Espresso Test Recorder ;
  • Отслеживание ошибок в коде с помощью встроенного инструмента анализа;
  • Также доступны другие встроенные инструменты, такие как Layout Editor , Vector Asset Studio , APK-анализатор и редактор переводов.
  • Android Studio — это одна из лучших сред разработки Java , которую стоит попробовать для разработки как стационарных, так и мобильных приложений.
  1. JDeveloper — бесплатная среда для упрощения разработки Java-приложений

Мощная Java IDE с открытым исходным кодом от Oracle . Она поддерживает все этапы создания приложения.

JDeveloper включает в себя усовершенствованный редактор кода, который повышает скорость разработки с помощью аудита кода, интегрированного модульного тестирование и профилирования. Также визуальный редактор можно использовать для программирования на SQL , XML , PHP , JavaScript , HTML и CSS .

JDeveloper оптимизирована для управления приложениями J2EE , базами данных, веб-службами REST / SOAP , мобильными приложениями, компонентами и приложениями Oracle Fusion Middleware .

Данная IDE содержит ряд встроенных инструментов для ускорения разработки. Один из них — интегрированный сервер WebLogic , который позволяет запускать, тестировать и отлаживать J2EE-приложения . А также браузер SQL и редактор PL / SQL , которые помогут в построении запросов, просмотре баз данных и создании отчетов; редактор WSDL , который ускоряет разработку SOAP и REST .

JDeveloper также включает в себя два инструмента отслеживания — встроенные генераторы схем XSD / XML и инструменты для запуска тестов.

  1. DrJava — простая среда для разработки Java-программ

Простая и адаптивная среда разработки Java-программ . Первоначально ее задача заключалась в том, чтобы познакомить новичков с Java через интерактивное обучение. Позже были добавлены дополнительные функции для продвинутых пользователей.

DrJava объединяет такие функции, как интеллектуальный редактор кода, интерактивный терминал для оценки выходных данных программы, отладчик исходного кода и инструмент запуска модульных тестов.

IDE поддерживает Java 8 и более новые версии. И еще одно полезное дополнение — интеграция с инструментом Jacoco для охвата кода. Когда вы запускаете модульные тесты, он генерирует отчеты, содержащие в себе ссылки, указывающие на охват кода.

По нашему мнению, DrJava лучше всего подходит для пользователей, которые недавно начали изучать Java . Они смогут развивать свои навыки Java -программирования , а затем перейти на интегрированные среды разработки Java NetBeans , Eclipse или IntelliJ .

  1. JEdit — продвинутый редактор для Java-разработчиков

Интуитивный редактор кода, используемый Java-программистами на протяжении многих лет. Он поддерживает Mac OS X , OS / 2 , Unix , VMS и Windows .

Как и в случае с Eclipse , для разработки JEdit использован язык программирования Java . И это также одно из лучших Java-приложений , доступных для свободного использования на основе лицензии GPL 2.0 .

UDE предлагает ряд современных функций:

  • JEdit включает в себя встроенный язык создания макросов для автоматизации любой повторяющейся задачи. Также можно использовать доступные макросы;
  • JEdit-пакеты с интерактивным менеджером плагинов для поиска и загрузки необходимых плагинов.
  1. MyEclipse — полноценная Java IDE для веб-разработки

MyEclipse является одним из инструментов, призванных сделать процесс разработки более эффективным. MyEclipse развивает компания Genuitec , которая создала его на базе Eclipse .

Данная среда разработки для языка Java поддерживает корпоративную разработку, веб-разработку и веб-разработку полного цикла.

Рассмотрим функции, которые она предоставляет:

  • Расширенная поддержка J2EE для всех известных фреймворков, таких как Spring , JPA , JSF , Jquery и Cordova ;
  • Интеллектуальное редактирование кода с подсказками, мгновенная проверка, подсветка синтаксиса, удобная справка (панель инструментов с хлебными крошками и мини карта );
  • Полное управление циклом развития проекта;
  • Встроенная поддержка MySQL , SQL Server и Sybase ;
  • Встроенный WebSphere для запуска, тестирования и отладки приложения «на лету »;
  • Другие серверы приложений, такие как WebLogic , Apache Tomcat , GlassFish и Derby , поддерживаются по умолчанию из коробки;
  • Создание динамических веб-приложений с использованием TypeScript и Angular 2 (ES6 );
  • Тонкая поддержка для разработки и тестирования RESTful веб-сервисов;
  • Возможность предварительного просмотра результата исполнения кода с помощью встроенного инструмента CodeLive . Также можно перейти к источнику любого элемента на веб-странице;
  • Кроссбраузерное тестирование и поддержка мобильных эмуляторов;
  • Обсуждение обновлений кода через интеграцию Slack .

MyEclipse содержит функции, которые могут повысить производительность любого Java-разработчика.

  1. JCreator — простая среда для Java- разработки

Является одной из лучших сред разработки Java , которая предоставляет разработчикам интерактивный опыт разработки. В этом плане она предоставляет больше возможностей, чем любой другой редактор кода.

Развитием JCreator занимается IT-компания Xinox Software . IDE доступна в двух вариантах: Lite версия с ограниченными возможностями и Pro edition с полным набором функций.

JCreator включает в себя множество полезных функций:

  • Интерфейс Easy Project Management похож на Visual Studio ;
  • Пользовательская цветовая схема для организации кода;
  • Возможность настроить и использовать в проектах нескольких профилей JDK ;
  • Выбор шаблона проекта для быстрого запуска;
  • Поддержка средств сборки и управления версиями, таких как Ant и CVS ;
  • Возможность запускать приложение как апплета с помощью JUnit или в терминале;
  • Встроенные инструменты для вызова внешних функций и утилит. форматирование Java-кода , компилятор RMI .

При создании этой IDE должное внимание было уделено простоте использования, скорости, производительности и отличному пользовательскому интерфейсу. Во многом авторы ориентировались на Microsoft Visual Studio.

  1. GreenFoot — онлайн-инструктор Java и IDE

Специализированный редактор кода, который предназначен для изучения Java новичками в интерактивном режиме. Он формирует среду для генерации симуляции графических программ и игр, написанных на Java .

IDE подробно документирует каждую функцию, предоставляя документацию, как новичкам, так и опытным пользователям. Это помогает быстро развивать свои навыки.

Эта среда разработки Java имеет понятный пользовательский интерфейс и включает в себя одно окно для моделирования всех объектов и классов приложения.

У GreenFoot есть своя целевая аудитория, к которой относятся студенты, преподаватели и тренеры. При этом в ней реализованы все функции, необходимые для Java- разработчика :

  • Редактор GUI позволяет добавлять классы одним кликом мыши. Но можно добавлять и другие элементы, в зависимости от конкретного варианта использования;
  • Создаваемые классы легко расширяются или наследуются. Это же можно делать и с помощью визуального редактора;
  • GreenFoot поддерживает большое количество библиотек изображений, сгруппированных по таким категориям, как животные, объекты, здания, люди и символы;
  • В данной IDE реализованы функции управления проектами, поддержки кода, автоматического завершения, подсветки синтаксиса и другие инструменты.
  • Языки, платформы и методы могут отличаться. Но есть два аспекта веб-разработки, которые общие для всех задач: front-end и backend. Цель этой статьи заключается в том, чтобы…

    Несколько лет назад практически все веб-страницы создавались вручную. Это было очень сложно, и до того момента, пока во всех популярных браузерах не появилась…

Для написания апплетов и приложений Java требуются такие средства разработки, как JDK. JDK включает следующие компоненты: среда выполнения Java, компилятор Java и API Java. Начало работы не представляет трудности ни для опытных, ни для начинающих программистов.

Где можно загрузить JDK?

Чтобы загрузить последнюю версию комплекта разработчика Java Development Kit (JDK), перейдите в раздел загрузки JDK .
Разработчики также могут посетить сообщество для разработчиков Java Oracle Technology Network for Java Developers и получить исчерпывающую информацию о технологии Java, включая документацию и обучающие материалы .

Начинающим пользователям Java

Начинающие пользователи, заинтересованные в разработке программ на Java, могут найти полезную информацию в разделе Начинающим пользователям Java .

Как получить сертификат Java?
Конференции для разработчиков Java
  • JavaOne - главная конференция для разработчиков Java, где можно узнать о последних технологиях Java, повысить уровень технических знаний и задать вопросы коллегам-разработчикам и специалистам по планированию. Oracle проводит ежегодные конференции JavaOne, включая основную конференцию JavaOne в Сан-Франциско и конференции регионального уровня. Посетите веб-сайт www.oracle.com/javaone для получения дополнительной информации о предстоящих мероприятиях и местах их проведения.
  • Дни разработчиков Oracle Technology Network - бесплатные практические семинары для разработчиков Java, которые регулярно проводятся во всех странах мира.
  • Oracle также оказывает спонсорскую поддержку другим компаниям, которые организуют мероприятия, посвященные технологии Java. Чтобы узнать о предстоящих событиях в вашем регионе, воспользуйтесь поиском по каталогу


Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!