Разработка системы автоматического поиска объектов на изображении. Установка среды разработки Eclipse

Java является высокоуровневым языком программирования, который был разработан компанией Sun Microsystems ещё в 1995 году. На сегодняшний день развитием данной технологии занимается компания JCP (Java Community Process ). Одной из главных особенностей языка является компиляция, выполняющаяся непосредственно при сборке программы.

Код превращается в байт-код, после чего выполняется в виртуальной машине Java. JVM выступает транслятором, связывающим язык программирования с необходимыми компонентами компьютера. Такой принцип позволяет программам работать на любых системах, где установлена виртуальная машина.

Особенности языка программирования

Объекто-ориентированный и типизированный язык Java обладает множеством полезных для разработчиков особенностей. Среди них можно выделить следующее:

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

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

Особенности программных платформ Java

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

  • Общепринятые технологии развёртывания программ в пользовательской среде.
  • Инструментарии для создания графических интерфейсов любой сложности.
  • Библиотеки для удалённого управления объектами и программного доступа к данным.
  • Инструменты для запуска, отладки, компиляции, мониторинга и других действий с приложениями.

Что такое Eclipse?

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

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

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

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

Среда программирования обладает следующими особенностями:

  • Широкая сборка API для добавления новых модулей, а также фреймворк для программирования любых расширений.
  • Поддержка всех популярных операционных систем.
  • Программирование в большинстве известных языков позволяет именно Eclipse - среда разработки. Си шарп (C#), Java, PHP, C, Python, C++ и многие другие языки поддерживаются данной программой.
  • Доступна технология RCP, возможностей которой будет достаточно для разработки клиентского ПО любой сложности и масштаба.
  • Модульность программы обеспечивает невероятное удобство и гибкость в работе.

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

Архитектура платформы

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

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

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

Примеры других специализированных сборок

Вышеуказанная Eclipse SDK является одной из версий платформы. Доступно ещё несколько сборок IDE с уникальными особенностями, а именно:

  • For Java EE Developers. Версия предназначена для программирования корпоративных или веб-приложений с применением Java EE.
  • For JavaScript Web Developers. Сборка для создания веб-продуктов с использованием CSS, XML, HTML и JavaScript.
  • For Java Developers. Версия для программирования на Java.
  • For C/C++ Developers. Сборка для программирования на языках C++ и C.

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

Конкурирующие продукты

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

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

Главным конкурентом рассматриваемой программы является продукт NetBeans, и он полностью бесплатен. За лицензию Eclipse же придётся заплатить, и некоторых это отпугивает. Среди остальных конкурирующих продуктов можно выделить также IntelliJ IDEA, JDeveloper, Android Studio, DrJava и MyEclipse. Но лучшей многие считают именно Eclipse. Среда разработки радует пользователей уже много лет и не прекращает это делать!

Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.

Наиболее известные приложения на основе Eclipse Platform - различные «Eclipse IDE» для разработки ПО на множестве языков (например, наиболее популярный «Java IDE», поддерживавшийся изначально, не полагается на какие-либо закрытые расширения, использует стандартный открытый API для доступа к Eclipse Platform).

Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.

В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой - RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например Azureus и File Arranger. Следующий слой сам Eclipse, представляющий собой набор расширений RCP - редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

С 2006 года фонд Eclipse координирует ежегодный общий релиз (Simultaneous Release), который происходит в июне. Каждый выпуск включает в себя платформу Eclipse, а также ряд других проектов Eclipse.

Преимущества Eclipse

Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.

Eclipse JDT (Java Development Tools) - наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями CVS, GIT в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.

Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ (см. ниже). Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.

Основой Eclipse является платформа расширенного клиента (RCP от англ. rich client platform). Её составляют следующие компоненты:

OSGi (стандартная среда поставки комплектов (англ. bundles));

SWT (портируемый инструментарий виджетов);

JFace (файловые буферы, работа с текстом, текстовые редакторы);

Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).

GUI в Eclipse написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT.

Гибкость Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких как C/C++, Perl, Groovy, Ruby, Python, PHP, Erlang, Компонентного Паскаля, Zonnon и прочих.

Платформа Java

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

Программный код, написанный на Java, виртуальная машина Java преобразует в байт-код Java. Однако есть компиляторы байт-кода для других языков программирования, таких как Ada, JavaScript, Python, и Ruby. Также есть несколько новых языков программирования, разработанных для работы с виртуальной машиной Java. Это такие языки как Scala, Clojure and Groovy. Синтаксис Java в основном заимствован из Си и C++, но объектно-ориентированные возможности основаны на модели, используемой в Smalltalk и Objective-C. В Java отсутствуют определённые низкоуровневые конструкции, такие как указатели, также Java имеет очень простую модель памяти, где каждый объект расположен в куче и все переменные объектного типа являются ссылками. Управление памятью осуществляется с помощью интегрированной автоматической сборки мусора, которую выполняет JVM.

- свободный фреймворк для разработки модульных кросс-платформенных приложений.

Изначально проект разрабатывался в IBM как корпоративный стандарт IDE для разработки на разных языках под платформы IBM. Потом проект был переименован в и предоставлен для дальнейшего развития сообществу.

В первую очередь полноценная Java IDE , нацеленная на групповую разработку, снабжённая средствами для работы с системами контроля версий (поддержка CVS входит в поставку Eclipse, активно развиваются несколько вариантов SVN модулей, существует поддержка VSS и других). В силу бесплатности во многих организациях Eclipse - корпоративный стандарт для разработки приложений .

Второе назначение - служить платформой для разработки новых расширений (чем и завоевал популярность - любой разработчик может расширить Eclipse своими модулями). Таковыми стали C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, COBOL, FORTRAN, PHP средства от различных разработчиков. Множество расширений дополняет Eclipse менеджерами для работы с базами данных, серверами приложений и др.

С версии 3.0 Eclipse стал не монолитной IDE, поддерживающей расширения, а набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой - платформа для разработки полноценных клиентских приложений RCP (Rich Client Platform - (англ. rich-client applications). Платформа RCP служит основой для RCP-приложений, таких как Azareus и File Arranger. Следующий слой - платформа Eclipse, представляющая собой набор расширений RCP - редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

Написана на Java , потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо «медленного» Swing и полностью зависит от нижележащей платформы (операционной системы), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса.

Основой Eclipse является платформа расширенного клиента (RCP - от англ. rich client platform). Её составляют следующие компоненты:


  • OSGi (стандартная среда поставки комплектов);
  • SWT (портируемый инструментарий виджетов);
  • JFace (файловые буферы, работа с текстом, );
  • Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).
  • GUI в написан с использованием инструментария SWT. Последний, в отличие от Swing (который лишь эмулирует отдельные графические элементы используемой платформы), действительно использует графические компоненты данной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT.

    Гибкость обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких как C/C++, Perl, Ruby, Python, PHP, ErLang и прочие.

    Локализация

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

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

    • C/С++ - CDT Eclipse’s C/C++ Development Tooling(англ.)
    • Perl - модуль EPIC, Eclipse Perl Integration(англ.)
    • PHP - PDT PHP Development Tools(англ.)
    • JavaScript - JSEclipse Javascript plugin for the Eclipse environment(англ.)
    • Python - Pydev, Python Development Environment(англ.)
    • Ruby - RDT, Ruby Development Tools(англ.)

    Существуют также модули для создания графических интерфейсов.

    Для разработки и получения отчетов и разработки аналитических BI-приложений в существует en:BIRT_Projec t.

    В встроена функция установки и обновления модулей через .

    Aptana (aptana.com) - дистрибутив Eclipse и plugin, поддерживающий разработку с использованием JavaScript (все основные JS Ajax библиотеки включены в состав дистрибутива), HTML, CSS, Ruby on rails, Adobe AIR.

    Оставьте свой комментарий!

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

    В этом дополнении к статье Дэвида Галлардо (EN) предлагается новая информация относительно Eclipse V3.3.

    Что такое Eclipse?

    Eclipse представляет собой основанную на Java расширяемую платформу разработки с открытым исходным кодом. По сути - это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). К счастью, в составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий - Java Development Tools (JDT).

    В то время как большинство пользователей, применяющих Eclipse в качестве интегрированной среды разработки Java (IDE), вполне им довольны, возможности его гораздо шире. Eclipse также включает в себя среду разработки плагинов (PDE), которая в первую очередь заинтересует тех, кто хочет расширить сам Eclipse, так как позволяет создавать свои инструменты, встраиваемые в среду Eclipse. Поскольку Eclipse полностью состоит из плагинов, у всех разработчиков инструментариев имеется возможность предложить свои расширения к Eclipse и предоставить пользователям последовательную и цельную интегрированную среду разработки (IDE).

    Эта целостность и последовательность характерны не только для инструментов Java-разработки. Хотя Eclipse написан на Java, использовать его можно и с другими языками. К примеру, уже имеются (или разрабатываются) плагины, поддерживающие такие языки программирования как C/C++ и COBOL. Структура Eclipse может также использоваться как основа для других типов приложений, не имеющих отношения к разработке ПО, например, систем управления контентом.

    Великолепным примером приложения на основе Eclipse является ПО IBM® Rational® Software Architect (см. ), которое легло в основу семейства инструментов IBM для разработки на Java.

    Eclipse - это открытый исходный код

    ПО с открытым исходным кодом выпускается под лицензией, имеющей целью гарантировать пользователям определённые права. Самое очевидное из них, конечно, то, что исходный код обязательно должен быть предоставлен пользователям, и они имеют полное право модифицировать и самостоятельно распространять ПО. Такая защита пользовательских прав достигается с помощью механизма под названием "copyleft": Лицензия программного обеспечения стоит на защите авторских прав (copyright) и запрещает распространение ПО, если пользователю не предоставлены такие права. Сopyleft-лицензия также требует, чтобы всё распространяемое пользователями ПО покрывалось исходной лицензией без изменений. Тем самым, смысл авторского права, по существу, переворачивается с ног на голову, а про copyleft-лицензию, использующую авторское право для наделения пользователя правами, а не для сохранения их за разработчиком ПО, часто в шутку говорят "все права извращены" (all rights reversed).

    Большая часть распространённых опасений, неуверенности и сомнений относительно ПО с открытым исходным кодом основана на так называемой вирусной природе некоторых copyleft-лицензий. Идея состоит в том, что если вы используете ПО с открытым исходным кодом как часть собственной разрабатываемой программы, вы потеряете свою интеллектуальную собственность, так как лицензия "заразит" собой ваши личные части программы. Другими словами, лицензия может потребовать, чтобы всё программное обеспечение, имеющее в своём составе ПО с открытым исходным кодом, включая и любое вновь созданное ПО, распространялось с той же самой лицензией. Хотя это и верно для наиболее известной copyleft-лицензии - GNU General Public License (под которой, например, распространяется Linux®), существуют и другие лицензии, обеспечивающие иное соотношение коммерческих и общественных интересов.

    Open Software Initiative - OSI (Инициатива открытого ПО) - это некоммерческая организация, дающая чёткое определение тому, что представляет собой открытый исходный код, и осуществляющая сертификацию лицензий, удовлетворяющих её критериям. Eclipse распространяется в рамках лицензии EPL - Eclipse Public License (Открытая лицензия Eclipse) V1.0, одобренной OSI и нацеленной на то, чтобы облегчить коммерческое признание Eclipse, при этом сохраняя лояльность к авторам исходного кода.

    Те, кто создаёт плагины к Eclipse или использует Eclipse как базу для разработки ПО, обязаны публиковать любой код Eclipse, который они используют либо модифицируют в рамках лицензии EPL, но имеют право лицензировать свои собственные дополнения, как им нравится. Собственный код, объединённый в комплект с ПО из Eclipse, не требует лицензирования в качестве открытого исходного кода, а сам исходный код не нужно делать общедоступным.

    Несмотря на то, что большинство программистов не станет использовать Eclipse для разработки плагинов или создания на его базе новых продуктов, значимость основанной на открытом исходном коде природы Eclipse велика не только потому, что благодаря ей Eclipse доступен совершенно бесплатно (и вопреки тому, что коммерчески ориентированная лицензия подразумевает, что плагины могут стоить денег). Открытый исходный код содействует инновациям и создаёт стимул для разработчиков (даже коммерческих) вносить свой исходный код как вклад в общую копилку. Для этого есть несколько причин, но едва ли не самая существенная состоит в том, что чем больше разработчиков вносит свой вклад в проект, тем более значимым он становится для всех. А когда проект становится полезным, всё большее число разработчиков будут использовать его и создадут вокруг него сообщество, подобное тем, что сформировались вокруг Apache и Linux. (Чтобы получить дополнительную информацию о лицензиях, обратитесь к разделу .)

    Что такое Eclipse?

    Eclipse - это сообщество разработчиков открытого исходного кода, чьи проекты нацелены на построение открытой платформы для разработки, состоящей из расширяемых среды разработки, инструментария и библиотек времени выполнения для построения, развёртывания и управления программным обеспечением в период его жизненного цикла. Фонд Eclipse (Eclipse Foundation) - это некоммерческое поддерживаемое участниками объединение, которое содержит проекты Eclipse и помогает совершенствовать сообщество разработчиков открытого исходного кода и "экосистему" дополняющих друг друга продуктов и сервисов.

    Проект Eclipse был создан в ноябре 2001 года компанией IBM и поддержан консорциумом поставщиков программного обеспечения. Фонд Eclipse был создан в январе 2004 года как независимая некоммерческая организация, выступающая распорядителем сообщества Eclipse. Он создавался, чтобы помочь независимому от поставщиков, открытому и прозрачному сообществу вырасти вокруг Eclipse. Сегодняшнее сообщество Eclipse состоит из частных лиц и организаций, представляющих индустрию программного обеспечения.

    Фонд Eclipse контролирует и направляет текущие разработки Eclipse. Фонд обслуживает сообщество, но разработчики открытого исходного кода, называемые коммитерами и, по существу, работающие над проектами Eclipse, не состоят в его штате. Обычно коммитеры Eclipse числятся в каких-либо организациях либо являются независимыми разработчиками, добровольно отдающими своё время работе в проекте открытого исходного кода.

    Теперь, взглянув на теоретические, исторические и политические аспекты Eclipse, давайте рассмотрим сам продукт.

    Рабочее пространство Eclipse

    При первом запуске Eclipse вы увидите страницу приветствия внутри рабочего пространства (см. рисунок 1). У пользователя Eclipse есть несколько возможностей перейти на страницу обзора (overview page), что я и рекомендую сделать (см. рисунок 2). Далее, можно ознакомиться с информацией по новым функциям, изучить некоторые примеры или пройти учебный курс.

    Рисунок 1. Страница приветствия Eclipse
    Рисунок 2. Страница обзора Eclipse

    Рабочее пространство Eclipse состоит из нескольких панелей, называемых представлениями , например навигационное или схематическое представления (navigator or outline views). Набор таких представлений называется перспективой . Одна из наиболее распространённых перспектив - перспектива Ресурсы (Resource), которая представляет собой базовый набор представлений для управления проектами и просмотра, а также редактирования файлов проекта.

    Я рекомендую большинству начинающих пользователей начинать со страницы обзора, показанной на рисунке 2, и узнать больше об Eclipse. Раздел "основы рабочего пространства" (workbench basics) содержит много полезной начальной информации о различных компонентах Eclipse и о том, как они взаимодействуют друг с другом. Уделите несколько минут чтению этого материала, а затем давайте погрузимся в инструменты разработки Java Development Tools (JDT) Eclipse. Лучший способ чему-либо научиться - попробовать это на практике.

    Продолжая этот короткий обзор Eclipse, мы создадим новый проект на Java. Выберите File > New > Java Project (Файл > Новый > Проект Java) и введите Hello в ответ на запрос имени проекта, а затем нажмите Finish .

    Теперь посмотрим на перспективу "Java" (если вы ещё в ней не находитесь). В зависимости от того, как вам больше нравится управлять своим экраном, можно либо сменить перспективу в текущем окне, выбрав Window > Open Perspective > Java (Окно > Открыть Перспективу > Java) , либо открыть новое окно, выбрав Window > New Window (Окно > Новое Окно) , и выбрать новую перспективу.

    Как и следовало ожидать, перспектива Java имеет набор представлений, предназначенных для ведения разработки на Java. Одно из них, расположенное в левом верхнем углу, представляет собой иерархию, содержащую различные пакеты Java, классы, JAR-архивы и разнообразные файлы. Это представление называется Обозреватель Пакетов (Package Explorer). Обратите внимание, что в главном меню добавлены два новых пункта: Source и Refactor.

    Java Development Tools (JDT)

    Чтобы опробовать среду разработки Java, мы создадим и выполним приложение под названием "Hello World". Находясь в перспективе Java, нажмём правой кнопкой на папке с исходным тестом проекта "Hello" (src) и выберем New > Class (Новый > Класс) , как показано на рисунке 3. В появившемся диалоговом окне введём Hello в качестве имени класса. Ниже надписи Which method stubs would you like to create? (Какие заглушки методов вы желаете создать?) отметим public static void main(String args) и нажмём Finish .

    Рисунок 3. Создание нового класса в перспективе Java

    При этом будет создан файл.java с классом Hello и пустым методом main() в области редактора, как показано на рисунке 4. Добавим нижеследующий код к методу (обратите внимание, что описание для i было преднамеренно опущено).

    Рисунок 4. Класс Hello в редакторе Java

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

    В остальных случаях вы можете вызвать автоматическое дописывание кода с помощью комбинации Ctrl+1 . Функция дописывания кода выдаёт контекстно зависимый список вариантов, из которого можно осуществлять выбор с помощью клавиатуры или мыши. Варианты могут представлять собой список методов, присущих конкретному объекту, или фрагмент кода, основанный на различных ключевых словах, таких как for или while .

    Проверка синтаксиса зависит от инкрементной компиляции. По мере сохранения вами кода он компилируется в фоновом режиме и проверяется на синтаксические ошибки. По умолчанию синтаксические ошибки подчеркиваются красным, а слева на полях появляется красная точка с белым знаком X. Другие ошибки помечаются на полях редактора символом электрической лампочки; это те проблемы, которые редактор мог бы за вас исправить (функция под названием Quick Fix).

    В вышеприведённом коде знак лампочки находится возле оператора for , так как было пропущено описание для i . Двойное нажатие мышкой на лампочку вызовет появление списка предлагаемых исправлений. В нашем случае будет предложено создать поле класса i , локальную переменную i или параметр i для метода; выбор мышкой любого из этих вариантов покажет тот код, который будет сгенерирован. На рисунке 5 показан список предлагаемых вариантов и код, предлагаемый в случае локальной переменной.

    Рисунок 5. Варианты, предлагаемые функцией Quick Fix

    Двойное нажатие мышкой на предложении вставляет код на нужное место в программе.

    Если программа компилируется без ошибок, её можно запустить, выбрав Run в меню Eclipse. (Обратите внимание на отсутствие отдельного шага для компиляции, потому что компиляция выполняется по мере сохранения кода. Если в вашем коде отсутствуют синтаксические ошибки, он готов для запуска.) Появляется диалог "Launch Configurations" (Конфигурации Запуска) с нужными значениями по умолчанию; нажмите Run внизу справа. В нижней панели появляется новая панель с закладками (Консоль), отображающая результат работы программы, как показано ниже.

    Рисунок 6. Результат работы программы

    Можно также запустить программу в отладчике Java. Сначала нужно установить контрольную точку в main() System.out.println() с помощью двойного щелчка мышки на сером поле с левой стороны окна редактирования рядом с вызовом System.out.println() . Появится голубая точка. В меню Run выберите команду Debug (Отладка) . Как описано раньше, появится диалог "Launch Configurations". Выберите команду Run . Перспектива автоматически сменится на перспективу Debug, содержащую целый ряд интересных новых представлений, как показано ниже.

    Рисунок 7. Перспектива Debug

    Обратите внимание на представление Debug в левом верхнем углу перспективы. Это представление показывает стек вызовов и содержит панель инструментов в строке заголовка, позволяющую управлять выполнением программы. На панели имеются кнопки для продолжения, приостановки или завершения программы, перехода к следующему оператору, перешагивания следующего оператора или возвращения из метода. Панель наверху справа содержит целый ряд представлений с закладками, в том числе Variables (Переменные), Breakpoints (Контрольные точки), Expressions (Выражения) и Display (Отображение). Сейчас выбрана закладка Variables, поэтому мы можем видеть текущее значение переменной i .

    Более подробную информацию о любом из представлений можно получить с помощью контекстной подсказки; для этого щёлкните мышкой на заголовке представления и нажмите F1 .

    Дополнительные плагины

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

    Eclipse содержит плагин для работы с Системой параллельных версий (CVS - Concurrent Versions System) для управления исходным кодом. Плагин Team (Команда) соединяется с CVS-сервером, позволяя членам команды разработчиков работать с набором файлов, содержащих исходные тексты, не вмешиваясь в изменения, вносимые другими. Мы не станем более подробно исследовать здесь управление исходными текстами из Eclipse, так как для этого потребуется установка CVS-сервера, хотя возможности, связанные с поддержкой команды разработчиков, а не только самостоятельной разработки, является важной и неотъемлемой частью Eclipse.

    Плагины, которые поддерживаются и распространяются Фондом Eclipse можно найти на Web-сайте Eclipse. Наиболее полный список имеющихся плагинов доступен на странице Eclipse Plug-in Central, которая служит каталогом плагинов.

    Архитектура платформы Eclipse

    Платформа Eclipse содержит мощный набор плагинов (см. рисунок 8), которые поддерживают проекты, такие как JDT и PDE.

    Рисунок 8. Упрощенная архитектура платформы Eclipse

    Тёмно-синие блоки обозначают компоненты, являющиеся центральной частью Платформы функционально насыщенных клиентов (Rich Client Platform - RCP) в Eclipse. Сама концепция RCP выходит за рамки статьи, но будем считать, что RCP - это просто набор плагинов из Eclipse, который люди могут использовать в разработке приложений, например Lotus Notes® 8. Светло-голубые блоки представляют необязательные (хотя и рекомендуемые) компоненты для включения в приложения на базе RCP. А серые блоки - совершенно необязательны. Платформа состоит из нескольких компонентов, мы рассмотрим некоторые из них:

    Runtime Runtime - это код, который определяет модель плагинов Eclipse, основанную на спецификации OSGi, а также на представлении о расширениях и точках расширения. Runtime также предоставляет дополнительные сервисы, такие как ведение системного журнала и параллелизм. JFace/SWT Пакет инструментов Standard Widget Toolkit (SWT) представляет собой набор виджетов, отвечающих за пользовательский интерфейс и функции Eclipse. JFace - это просто надстройка над SWT, предоставляющая несколько классов Model-View-Controller (MVC) для облегчения разработки графических приложений. Workbench (Рабочее пространство) Рабочее пространство придаёт Eclipse его индивидуальность. Именно на этом уровне реализована концепция представлений, перспектив и таких вещей как окна редактирования. Help (Поддержка Пользователей) Этот компонент Eclipse позволяет предоставлять поддержку вашим пользователям. Это можно сделать через справочную систему, которая позволит пользователям искать справочную документацию, либо с помощью "шпаргалок", которые для конечных пользователей могут представляться как интерактивные списки задач. Update (Обновление) Компонент update предоставляет в Eclipse средства, позволяющие обновлять приложения с одной версии на другую. Team (Команда) Компонент team - это инфраструктура, позволяющая фирмам-разработчикам подключать свои собственные системы управления версиями. Образцом реализации провайдера является плагин CVS, встроенный в Eclipse.

    Заключение

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

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

    Eclipse представляет собой основанную на Java расширяемую платформу разработки с открытым исходным кодом. По сути - это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). К счастью, в составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий - Java Development Tools (JDT).

    В то время как большинство пользователей, применяющих Eclipse в качестве интегрированной среды разработки Java (IDE), вполне им довольны, возможности его гораздо шире. Eclipse также включает в себя среду разработки плагинов (PDE), которая в первую очередь заинтересует тех, кто хочет расширить сам Eclipse, так как позволяет создавать свои инструменты, встраиваемые в среду Eclipse. Поскольку Eclipse полностью состоит из плагинов, у всех разработчиков инструментариев имеется возможность предложить свои расширения к Eclipse и предоставить пользователям последовательную и цельную интегрированную среду разработки (IDE).

    Эта целостность и последовательность характерны не только для инструментов Java-разработки. Хотя Eclipse написан на Java, использовать его можно и с другими языками. К примеру, уже имеются (или разрабатываются) плагины, поддерживающие такие языки программирования как C/C++ и COBOL. Структура Eclipse может также использоваться как основа для других типов приложений, не имеющих отношения к разработке ПО, например, систем управления контентом.

    Великолепным примером приложения на основе Eclipse является ПО IBM Rational Software Architect , которое легло в основу семейства инструментов IBM для разработки на Java.

    Eclipse - это открытый исходный код

    ПО с открытым исходным кодом выпускается под лицензией, имеющей целью гарантировать пользователям определённые права. Самое очевидное из них, конечно, то, что исходный код обязательно должен быть предоставлен пользователям, и они имеют полное право модифицировать и самостоятельно распространять ПО. Такая защита пользовательских прав достигается с помощью механизма под названием "copyleft": Лицензия программного обеспечения стоит на защите авторских прав (copyright) и запрещает распространение ПО, если пользователю не предоставлены такие права. Сopyleft-лицензия также требует, чтобы всё распространяемое пользователями ПО покрывалось исходной лицензией без изменений. Тем самым, смысл авторского права, по существу, переворачивается с ног на голову, а про copyleft-лицензию, использующую авторское право для наделения пользователя правами, а не для сохранения их за разработчиком ПО, часто в шутку говорят "все права извращены" (all rights reversed).

    Большая часть распространённых опасений, неуверенности и сомнений относительно ПО с открытым исходным кодом основана на так называемой вирусной природе некоторых copyleft-лицензий. Идея состоит в том, что если вы используете ПО с открытым исходным кодом как часть собственной разрабатываемой программы, вы потеряете свою интеллектуальную собственность, так как лицензия "заразит" собой ваши личные части программы. Другими словами, лицензия может потребовать, чтобы всё программное обеспечение, имеющее в своём составе ПО с открытым исходным кодом, включая и любое вновь созданное ПО, распространялось с той же самой лицензией. Хотя это и верно для наиболее известной copyleft-лицензии - GNU General Public License (под которой, например, распространяется Linux), существуют и другие лицензии, обеспечивающие иное соотношение коммерческих и общественных интересов.

    Open Software Initiative - OSI (Инициатива открытого ПО) - это некоммерческая организация, дающая чёткое определение тому, что представляет собой открытый исходный код, и осуществляющая сертификацию лицензий, удовлетворяющих её критериям. Eclipse распространяется в рамках лицензии EPL - Eclipse Public License (Открытая лицензия Eclipse) V1.0, одобренной OSI и нацеленной на то, чтобы облегчить коммерческое признание Eclipse, при этом сохраняя лояльность к авторам исходного кода.

    Те, кто создаёт плагины к Eclipse или использует Eclipse как базу для разработки ПО, обязаны публиковать любой код Eclipse, который они используют либо модифицируют в рамках лицензии EPL, но имеют право лицензировать свои собственные дополнения, как им нравится. Собственный код, объединённый в комплект с ПО из Eclipse, не требует лицензирования в качестве открытого исходного кода, а сам исходный код не нужно делать общедоступным.

    Несмотря на то, что большинство программистов не станет использовать Eclipse для разработки плагинов или создания на его базе новых продуктов, значимость основанной на открытом исходном коде природы Eclipse велика не только потому, что благодаря ей Eclipse доступен совершенно бесплатно (и вопреки тому, что коммерчески ориентированная лицензия подразумевает, что плагины могут стоить денег). Открытый исходный код содействует инновациям и создаёт стимул для разработчиков (даже коммерческих) вносить свой исходный код как вклад в общую копилку. Для этого есть несколько причин, но едва ли не самая существенная состоит в том, что чем больше разработчиков вносит свой вклад в проект, тем более значимым он становится для всех. А когда проект становится полезным, всё большее число разработчиков будут использовать его и создадут вокруг него сообщество, подобное тем, что сформировались вокруг Apache и Linux.

    Что такое Eclipse?

    Eclipse - это сообщество разработчиков открытого исходного кода, чьи проекты нацелены на построение открытой платформы для разработки, состоящей из расширяемых среды разработки, инструментария и библиотек времени выполнения для построения, развёртывания и управления программным обеспечением в период его жизненного цикла. Фонд Eclipse (Eclipse Foundation) - это некоммерческое поддерживаемое участниками объединение, которое содержит проекты Eclipse и помогает совершенствовать сообщество разработчиков открытого исходного кода и "экосистему" дополняющих друг друга продуктов и сервисов.

    Проект Eclipse был создан в ноябре 2001 года компанией IBM и поддержан консорциумом поставщиков программного обеспечения. Фонд Eclipse был создан в январе 2004 года как независимая некоммерческая организация, выступающая распорядителем сообщества Eclipse. Он создавался, чтобы помочь независимому от поставщиков, открытому и прозрачному сообществу вырасти вокруг Eclipse. Сегодняшнее сообщество Eclipse состоит из частных лиц и организаций, представляющих индустрию программного обеспечения.

    Фонд Eclipse контролирует и направляет текущие разработки Eclipse. Фонд обслуживает сообщество, но разработчики открытого исходного кода, называемые коммитерами и, по существу, работающие над проектами Eclipse, не состоят в его штате. Обычно коммитеры Eclipse числятся в каких-либо организациях либо являются независимыми разработчиками, добровольно отдающими своё время работе в проекте открытого исходного кода.

    Теперь, взглянув на теоретические, исторические и политические аспекты Eclipse, давайте рассмотрим сам продукт.

    Рабочее пространство Eclipse

    При первом запуске Eclipse вы увидите страницу приветствия внутри рабочего пространства (см. рисунок 1). У пользователя Eclipse есть несколько возможностей перейти на страницу обзора (overview page), что я и рекомендую сделать (см. рисунок 2). Далее, можно ознакомиться с информацией по новым функциям, изучить некоторые примеры или пройти учебный курс.

    Рисунок 2. Страница обзора Eclipse

    Рабочее пространство Eclipse состоит из нескольких панелей, называемых представлениями, например навигационное или схематическое представления (navigator or outline views). Набор таких представлений называется перспективой. Одна из наиболее распространённых перспектив - перспектива Ресурсы (Resource), которая представляет собой базовый набор представлений для управления проектами и просмотра, а также редактирования файлов проекта.

    Я рекомендую большинству начинающих пользователей начинать со страницы обзора, показанной на рисунке 2, и узнать больше об Eclipse. Раздел "основы рабочего пространства" (workbench basics) содержит много полезной начальной информации о различных компонентах Eclipse и о том, как они взаимодействуют друг с другом. Уделите несколько минут чтению этого материала, а затем давайте погрузимся в инструменты разработки Java Development Tools (JDT) Eclipse. Лучший способ чему-либо научиться - попробовать это на практике.

    Продолжая этот короткий обзор Eclipse, мы создадим новый проект на Java. Выберите File > New > Java Project (Файл > Новый > Проект Java) и введите Hello в ответ на запрос имени проекта, а затем нажмите Finish .

    Теперь посмотрим на перспективу "Java" (если вы ещё в ней не находитесь). В зависимости от того, как вам больше нравится управлять своим экраном, можно либо сменить перспективу в текущем окне, выбрав Window > Open Perspective > Java (Окно > Открыть Перспективу > Java) , либо открыть новое окно, выбрав Window > New Window (Окно > Новое Окно) , и выбрать новую перспективу.

    Как и следовало ожидать, перспектива Java имеет набор представлений, предназначенных для ведения разработки на Java. Одно из них, расположенное в левом верхнем углу, представляет собой иерархию, содержащую различные пакеты Java, классы, JAR-архивы и разнообразные файлы. Это представление называется Обозреватель Пакетов (Package Explorer). Обратите внимание, что в главном меню добавлены два новых пункта: Source и Refactor.

    Java Development Tools (JDT)

    Чтобы опробовать среду разработки Java, мы создадим и выполним приложение под названием "Hello World". Находясь в перспективе Java, нажмём правой кнопкой на папке с исходным тестом проекта "Hello" (src) и выберем New > Class (Новый > Класс) , как показано на рисунке 3. В появившемся диалоговом окне введём Hello в качестве имени класса. Ниже надписи Which method stubs would you like to create? (Какие заглушки методов вы желаете создать?) отметим public static void main(String args) и нажмём Finish .

    Рисунок 3. Создание нового класса в перспективе Java

    При этом будет создан файл.java с классом Hello и пустым методом main() в области редактора, как показано на рисунке 4. Добавим нижеследующий код к методу (обратите внимание, что описание для i было преднамеренно опущено).

    Рисунок 4. Класс Hello в редакторе Java

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

    В остальных случаях вы можете вызвать автоматическое дописывание кода с помощью комбинации Ctrl+1 . Функция дописывания кода выдаёт контекстно зависимый список вариантов, из которого можно осуществлять выбор с помощью клавиатуры или мыши. Варианты могут представлять собой список методов, присущих конкретному объекту, или фрагмент кода, основанный на различных ключевых словах, таких как for или while .

    Проверка синтаксиса зависит от инкрементной компиляции. По мере сохранения вами кода он компилируется в фоновом режиме и проверяется на синтаксические ошибки. По умолчанию синтаксические ошибки подчеркиваются красным, а слева на полях появляется красная точка с белым знаком X. Другие ошибки помечаются на полях редактора символом электрической лампочки; это те проблемы, которые редактор мог бы за вас исправить (функция под названием Quick Fix).

    В вышеприведённом коде знак лампочки находится возле оператора for , так как было пропущено описание для i . Двойное нажатие мышкой на лампочку вызовет появление списка предлагаемых исправлений. В нашем случае будет предложено создать поле класса i , локальную переменную i или параметр i для метода; выбор мышкой любого из этих вариантов покажет тот код, который будет сгенерирован. На рисунке 5 показан список предлагаемых вариантов и код, предлагаемый в случае локальной переменной.

    Рисунок 5. Варианты, предлагаемые функцией Quick Fix

    Двойное нажатие мышкой на предложении вставляет код на нужное место в программе.

    Если программа компилируется без ошибок, её можно запустить, выбрав Run в меню Eclipse. (Обратите внимание на отсутствие отдельного шага для компиляции, потому что компиляция выполняется по мере сохранения кода. Если в вашем коде отсутствуют синтаксические ошибки, он готов для запуска.) Появляется диалог "Launch Configurations" (Конфигурации Запуска) с нужными значениями по умолчанию; нажмите Run внизу справа. В нижней панели появляется новая панель с закладками (Консоль), отображающая результат работы программы, как показано ниже.

    Рисунок 6. Результат работы программы

    Можно также запустить программу в отладчике Java. Сначала нужно установить контрольную точку в main() System.out.println() с помощью двойного щелчка мышки на сером поле с левой стороны окна редактирования рядом с вызовом System.out.println() . Появится голубая точка. В меню Run выберите команду Debug (Отладка) . Как описано раньше, появится диалог "Launch Configurations". Выберите команду Run . Перспектива автоматически сменится на перспективу Debug, содержащую целый ряд интересных новых представлений, как показано ниже.

    Рисунок 7. Перспектива Debug

    Обратите внимание на представление Debug в левом верхнем углу перспективы. Это представление показывает стек вызовов и содержит панель инструментов в строке заголовка, позволяющую управлять выполнением программы. На панели имеются кнопки для продолжения, приостановки или завершения программы, перехода к следующему оператору, перешагивания следующего оператора или возвращения из метода. Панель наверху справа содержит целый ряд представлений с закладками, в том числе Variables (Переменные), Breakpoints (Контрольные точки), Expressions (Выражения) и Display (Отображение). Сейчас выбрана закладка Variables, поэтому мы можем видеть текущее значение переменной i .

    Более подробную информацию о любом из представлений можно получить с помощью контекстной подсказки; для этого щёлкните мышкой на заголовке представления и нажмите F1 .

    Дополнительные плагины

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

    Eclipse содержит плагин для работы с Системой параллельных версий (CVS - Concurrent Versions System) для управления исходным кодом. Плагин Team (Команда) соединяется с CVS-сервером, позволяя членам команды разработчиков работать с набором файлов, содержащих исходные тексты, не вмешиваясь в изменения, вносимые другими. Мы не станем более подробно исследовать здесь управление исходными текстами из Eclipse, так как для этого потребуется установка CVS-сервера, хотя возможности, связанные с поддержкой команды разработчиков, а не только самостоятельной разработки, является важной и неотъемлемой частью Eclipse.

    Плагины, которые поддерживаются и распространяются Фондом Eclipse можно найти на Web-сайте Eclipse. Наиболее полный список имеющихся плагинов доступен на странице Eclipse Plug-in Central, которая служит каталогом плагинов.

    Архитектура платформы Eclipse

    Платформа Eclipse содержит мощный набор плагинов (см. рисунок 8), которые поддерживают проекты, такие как JDT и PDE.

    Рисунок 8. Упрощенная архитектура платформы Eclipse

    Тёмно-синие блоки обозначают компоненты, являющиеся центральной частью Платформы функционально насыщенных клиентов (Rich Client Platform - RCP) в Eclipse. Сама концепция RCP выходит за рамки статьи, но будем считать, что RCP - это просто набор плагинов из Eclipse, который люди могут использовать в разработке приложений, например Lotus Notes® 8. Светло-голубые блоки представляют необязательные (хотя и рекомендуемые) компоненты для включения в приложения на базе RCP. А серые блоки - совершенно необязательны. Платформа состоит из нескольких компонентов, мы рассмотрим некоторые из них:

    Runtime Runtime - это код, который определяет модель плагинов Eclipse, основанную на спецификации OSGi, а также на представлении о расширениях и точках расширения. Runtime также предоставляет дополнительные сервисы, такие как ведение системного журнала и параллелизм. JFace/SWT Пакет инструментов Standard Widget Toolkit (SWT) представляет собой набор виджетов, отвечающих за пользовательский интерфейс и функции Eclipse. JFace - это просто надстройка над SWT, предоставляющая несколько классов Model-View-Controller (MVC) для облегчения разработки графических приложений. Workbench (Рабочее пространство) Рабочее пространство придаёт Eclipse его индивидуальность. Именно на этом уровне реализована концепция представлений, перспектив и таких вещей как окна редактирования. Help (Поддержка Пользователей) Этот компонент Eclipse позволяет предоставлять поддержку вашим пользователям. Это можно сделать через справочную систему, которая позволит пользователям искать справочную документацию, либо с помощью "шпаргалок", которые для конечных пользователей могут представляться как интерактивные списки задач. Update (Обновление) Компонент update предоставляет в Eclipse средства, позволяющие обновлять приложения с одной версии на другую. Team (Команда) Компонент team - это инфраструктура, позволяющая фирмам-разработчикам подключать свои собственные системы управления версиями. Образцом реализации провайдера является плагин CVS, встроенный в Eclipse.

    Заключение

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

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

    mob_info