Введение в интегрированную среду разработки Eclipse

Введение в интегрированную среду разработки Eclipse

Если вы когда-нибудь пристально следили за событиями, происходящими в мире open-source или Java-технологий, то просто не могли никогда не слышать всего этого шума, развернутого вокруг Eclipse. Eclipse — это расширяемая open-source интегрированная среда разработки (IDE, Integrated Develop-ment Environment). Этот проект был запущен в ноябре 2001 года, когда IBM выделили исходный код из Websphere Studio Workbench ценой в 40 миллионов долларов и сформировали Eclipse Consortium для управления разработкой этого инструмента.

Первоначальная цель заключалась в том, чтобы "разработать стабильную, полнофункциональную промышленную платформу качества коммерческого продукта для разработки интегрируемых инструментов". На настоящий момент Eclipse Consortium фокусируется на следующих проектах:
1. The Eclipse Project ( http://www.eclipse.org/eclipse/index.html ) — ответственен за разработку непосредственно Eclipse IDE (платформа для сборки прочих инструментов Eclipse), Java Development Tools (JDT) и Plug-In Development Environ-ment (PDE), используемой для предоставления возможности расширения самой платформы.
2. The Eclipse Tools Project ( http://www.eclipse.org/tools/index.html ) — занимается созданием оптимальных инструментальных средств для платформы Eclipse. В текущие подпроекты входят: Cobol IDE, C/C++ IDE, а также инструмент моделирования EMF.
3. The Eclipse Technology Project ( http://www.eclipse.org/technology/index.html ) — занимается технологическими исследованиями, инкубацией и образованием по части использования платформы Eclipse.

Совместно с JDT платформа Eclipse предоставляет множество различных возможностей, которые вы могли наблюдать в коммерческих IDE: подсветка синтаксиса в редакторе, компиляция кода, отладчик уровня исходного кода с поддержкой нитей (threads), навигатор по классам, файловый менеджер и менеджер проектов, интерфейсы для стандартных контролирующих систем исходного кода — таких, как, например, CVS и ClearCase.
Помимо этого, Eclipse содержит ряд уникальных возможностей — например, рефакторинг кода ( http://www.refactoring.com/ ), автоматическое обновление и сборка кода (посредством Update Manager), список задач, поддержка возможности тестирования модулей с помощью JUnit ( http://www.junit.org/ ), а также интеграция с инструментом сборки приложений Jakarta Ant ( http://jakarta.apache.org/ant/index.html ).
Несмотря на большое количество стандартного набора возможностей, Eclipse отличается от традиционных IDE по нескольким фундаментальным особенностям. Может быть, самая интересная возможность Eclipse — это абсолютная нейтральность относительно платформы и языка программирования. Вдобавок к эклектичному набору языков программирования, которые поддерживаются Eclipse Consortium (Java, C/C++, Cobol), существует множество сторонних проектов, с помощью которых вы можете обеспечить поддержку интересующего вас языка программирования в Eclipse. На сегодняшний день существуют реализации следующих популярных языков программирования: Python, Eiffel, PHP, Ruby и C#.

Платформа Eclipse предоставляется, благодаря Eclipse Consortium, в виде заранее скомпилированных исполняемых файлов для Windows, Linux, Solaris, HP-UX, AIX, QNX и Mac OS X. Очень много внимания концентрируется вокруг архитектурной системы plug-in'ов этой платформы, а также "богатых" API (Application Programming Interface), поставляемых с Plug-in Development Environ-ment для расширения Eclipse. Добавить поддержку нового типа редактора, просмотрщика (панели) или языка программирования до безобразия просто благодаря хорошо спроектированным API и строительным блокам, которые предоставляет Eclipse.
При наличии приблизительно сотни проектов по разработке plug-in'ов, ресурсов, предоставляемых такими промышленными гигантами, как IBM, HP и Rational (которая недавно была куплена IBM), и дизайна Erich Gamma, который помогает быстро разобраться в процессе разработки, Eclipse ожидает весьма яркое, интересное и перспективное будущее.

Установка
Бьюсь об заклад, что вы сейчас только и думаете о том, где бы достать копию этого самого Eclipse для вашей платформы и как бы это его установить:). Первое, о чем вам для начала нужно позаботиться — это убедиться в наличии подходящей, рабочей JRE (Java Runtime Evironment). Хотя Eclipse и создавался в расчете на возможность компиляции кода для JVM (Java Virtual Machine) как версии 1.3, так и версии 1.4, однако текущие версии Eclipse были спроектированы таким образом, чтобы запускаться на JVM версии 1.3. Если вы не представляете, где можно достать виртуальную Java-машину (JVM) для вашей платформы, вы можете найти подробные инструкции и дополнительную информацию об этом на сайте http://www.eclipse.org .

Как только вы убедились в наличии JVM или установили подходящую ее версию, вы готовы к установке Eclipse. Для этого посетите download-раздел сайта проекта Eclipse ( http://www.eclipse.org/downloads ) и скачайте оттуда последний релиз, собранный специально под используемую вами платформу. Все дистрибутивы представляют собой .zip-архивы. Распакуйте скачанный архив в подходящую директорию и потратьте немного времени на изучение всех файлов, содержащихся в директории readme.
Хотите верьте, хотите — нет, но на этом инсталляция завершена. Если вы правильно установили JVM и корректно распаковали архив с Eclipse — вы можете приступать к процессу первого запуска этой IDE. Все дистрибутивы, содержащие скомпилированную версию платформы, предоставляют программы для запуска, которые располагаются в основной директории: eclipse. Имя этой программы запуска изменяется в зависимости от платформы, под которую вы скачали дистрибутив: eclipse.exe под Windows, eclipse под Solaris и т.д. При первом запуске приложение Eclipse выполнит некоторые оставшиеся задачи по установке (например, создание workspace-директории для хранения файлов проектов) до того, как приложение будет окончательно готово к работе.

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

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

Пример приложения
Панели File Navigator, Code Outline и Task List отображены, но на данный момент не содержат никаких данных. Чтобы продолжить знакомство с Eclipse, мы создадим простое Swing-приложение программу-калькулятор. Распишем действия по шагам:
1. Выберите пункт меню File-> New-> Project..., чтобы начать создание вашего первого Java-проекта. В окне Мастера выберите Java среди предложенных типов проектов из левого списка и Java Project в правом списке, после чего нажмите кнопку Next.

2. В качестве имени проекта введите Calculator и продолжите создание проекта, нажав кнопку Next.

3. И наконец на завершающем этапе Мастер создания нового проекта дает вам возможность определить директории, где будут храниться файлы исходного кода и class-файлы, определить подпроекты, которые могут быть использованы создаваемым нами текущим проектом, а также любые библиотеки, которые мы предполагаем использовать в своем приложении. Установите переключатель на значение Use source folder contained in the project, после чего нажмите кнопку Create New Folder... В качестве имени новой директории для хранения исходного кода введите src. Нажмите Yes, когда Eclipse спросит вас о том, изменить ли директорию с собираемым приложением на Calculator/bin.

4. Нажмите кнопку Finish, чтобы дать возможность Eclipse завершить создание нового проекта.
Как только вы создали новый проект, можно заметить, что внешний вид Eclipse несколько изменился (этого и следовало ожидать): панель Outline переместилась в другую часть окна, панель Navigator была заменена панелью Package Explorer и т.д.
Вот какой вид приняло окно Eclipse после того, как мы создали новый проект.

Такая планировка называется Java Perspective. "Ракурс", в понятии Eclipse, определяет какой-либо сохраненный порядок расположения любого количества различных панелей редактора и просмотрщиков. Eclipse поставляется с рядом ракурсов, определенных по умолчанию (Resource, Java, Debug и др.), которые могут быть изменены в соответствии с вашими нуждами, или же вы можете создавать свои собственные ракурсы. Ракурсы управляются при помощи элементов меню Window или специальной панели инструментов, которая обычно располагается вдоль левой границы окна Eclipse.

Следующим шагом в создании нашего Java-проекта будет создание директорий, содержащих весь наш исходный код. Для этого переключитесь в ракурс Resource, используя пункт меню Window-> Open Perspec-tive-> Resource. В панели Naviga-tor разверните узлы дерева структуры папок таким образом, чтобы можно было видеть узел-папку src. Выделите этот узел и после выполните пункт меню File-> New-> Folder. В появившемся диалоговом окне убедитесь, что директория src выбрана, и затем введите в поле Folder Name имя com в качестве имени новой директории.
Создавать большое количество папок с помощью диалога New Folder было бы не очень удобно и, к тому же, утомительно. К счастью, Eclipse может предоставить вам возможность самим создавать нужные директории с помощью вашего любимого файлового менеджера: командной строки, Windows Explorer и пр. Используя один из предложенных методов, создайте в папке com папку devious, а в ней — папку calculator. Как только вы создали эти папки, выберите любую папку-узел в панели Navigator и с помощью элемента меню File-> Refresh обновите содержимое этой панели. Таким образом Eclipse произведет просмотр файловой системы и обновит панель проекта в соответствии с теми изменениями, которые вы внесли (создали новые директории). На этом этапе ваше окно Eclipse должно иметь примерно следующий вид:

И еще одно замечание по поводу создания файлов: на ранних этапах создания проекта вы, скорее всего, достаточно часто будете запускать свое приложение, создавать новые файлы и папки, добавлять новый код, компилировать и тестировать свой код снова. Важно помнить, что расположение меню в Eclipse зависит от используемого ракурса. Так, если вы переключаетесь в ракурс Resource, чтобы создать новый файл или папку в панели Navigator, то обнаружите, что меню Run, например, в корне отличается от меню Run в ракурсе Java. Одно из решений этой часто встречающейся проблемы — использование меню Windows-> Show View, с тем чтобы отобразить панель Navigator в ракурсе Java. Если вас полностью устроит полученный ракурс, то, воспользовавшись элементом меню Window-> Save Perspective As..., вы сможете сохранить ваши изменения в новом ракурсе либо переписать существующий ракурс Java.

Добавление кода
Теперь, когда у нас есть созданная структура директорий, мы можем начинать добавление исходного кода в наш проект. Мы разделим нашу программу-калькулятор на три класса (файла): CalcModel.java, CalcPa-nel.java и Calculator.java. Скачайте .zip-архив с исходным кодом этой программы отсюда: http://www.onjava.com/onjava/2002/12/11/examples/calculator.zip . После этого распакуйте этот архив и поместите три упомянутых выше файла в директорию com/devious/calculator. Снова воспользуемся пунктом меню File-> Refresh, чтобы обновить содержимое панели Project Manager. Вот что вы должны увидеть после выполнения этих действий:

CalcPanel.java представляет основу интерфейса пользователя нашего калькулятора. Calculator.java выполняет подготовительные инициализационные функции и запускает GUI (графический интерфейс пользователя). Самая же важная часть нашей программы находится в файле CalcMo-del.java, который занимается непосредственно реализацией фактической математики нашего калькулятора: реагирование на события, выполнение математических вычислений, обновление отображаемой информации и т.д. Самый простой способ просмотреть исходный код — переключиться из ракурса Java в Java Browsing. Для этого используйте Open Perspetive из меню Window или кликните на кнопке Open, которая находится на панели инструментов для работы с ракурсами.
В то время как вы перемещаетесь по исходному коду на панели Package Explorer, вы можете заметить, что панель Outline становится ненужной вам на данном этапе. Ее можно на время убрать с экрана, кликнув по крестику в правом углу этой панели.
Когда она вам понадобится, вы можете воспользоваться пунктом меню Window-> Show View-> Outline, чтобы отобразить ее вновь.

Запуск и отладка кода
Итак, вы скачали и установили Eclipse, создали новый Java-проект и добавили необходимые файлы и папки для своего простого приложения. Настало время проверить это приложение в деле, запустив его. Для этого вам нужно установить ракурс Java, чтобы выполнить шаги, которые необходимы для запуска приложения:
1. Из основного меню Run выберите элемент Run...
2. В появившемся диалоге Мастера запуска выберите Java Application из списка Launch Configurations и нажмите кнопку New.

3. В качестве имени новой конфигурации введите Calculator.

4. Нажмите кнопку Search... и выберите основным классом класс Calculator в поле Main class или просто введите в поле ввода полное имя класса: com.devious.calculator.Calculator.

5. Нажмите кнопку Run, чтобы сохранить установленную конфигурацию и запустить приложение.

Создав однажды конфигурацию запуска своего приложения, вы можете запускать его вновь с помощью меню Run-> Run History или кнопки Run на панели инструментов. Если вы потратите достаточно времени, "играя" с этим калькулятором, то обнаружите, что он работает, в основном, правильно, но только с одним но: он не хочет правильно выполнять операцию вычитания! Время пустить в ход отладчик исходного кода Eclipse и обнаружить эту злосчастную ошибку. Если вы следовали всем инструкциям, приведенным ранее в этой статье, то сможете запустить это приложение с отладчиком с той же конфигурацией, которую мы определили для обычного запуска. Для этого выберите в меню пункт Run-> Debug History-> Calculator.
Когда вы запускаете свое приложение вместе с отладчиком, Eclipse автоматически переключается в ракурс Debug.
Поскольку обнаруженная нами проблема сконцентрирована вокруг функции вычитания, мы установим точку прерывания (breakpoint) в обработчик события для кнопок "-" и "=". Для начала нам нужно переключиться в закладку редактора класса CalcPanel (если у вас нет закладки с исходным кодом этого класса, вам нужно открыть файл с именем CalcPanel.java, предварительно переключившись в ракурс Java или Resource и потом вернуться обратно в ракурс Debug).

Воспользуйтесь панелью Out-line, чтобы определить местонахождение метода actionPer-formed. Переместитесь немного ниже, пока не обнаружите выражение case для знака "-" (строка 126). Если вы выполните двойной клик на левой границе этой строки, Eclipse автоматически установит точку прерывания в ней. Переместитесь немного ниже и установите еще одну точку прерывания на вызове метода model.calculate() в обработчике события кнопки "=" (строка 138).

Теперь переключитесь в окно калькулятора и нажмите несколько кнопок. Например, "2", "4", "6" и "-". Как только отладчик натыкается на точку прерывания, вы можете видеть появившиеся кнопки на панели инструментов Debug, которые служат для пошагового прохождения по исходному коду, причем шаги по коду можно делать и не заходя внутрь методов, выполнять их автоматически или же, заходя внутрь, проходиться и по их исходному коду.
Если мы зайдем внутрь метода setOperation(), станет понятно, что он выполняет достаточно тривиальную функцию: сохраняет код операции в поле pendingOp. Теперь нажмите кнопку Resume на панели инструментов Debug, чтобы продолжить выполнение программы.
Замечание: Основная ошибка новых пользователей Eclipse в том, что они иногда нажимают кнопки Debug или Run на основной панели инструментов (что приводит к запуску еще одной копии приложения), вместо того чтобы нажать Resume.
Теперь нажмите еще пару кнопок (например, "1", "2", "3") и после этого кнопку "=". Таким образом, мы оказываемся внутри метода calculate(). Проблема оказалась очевидна: кто-то скопировал код из варианта OP_ADD, но забыл заменить знак "+" на "-". Проблема решена:)!

Исправление ошибки методом HotSwap
Если для запуска приложения вы использовали JVM версии 1.4, то нам остался всего один завершающий шаг на пути к исправлению этой ошибки в нашем примере.
Вместо того чтобы выходить из программы-калькулятора, вносить изменения в исходный код, компилировать заново весь проект и только потом запускать новую сессию отладчика, мы можем изменить все на лету. В то время как отладчик все еще запущен, измените в исходном коде строку с:
setDisplay(previousValue + cur-rentValue);
на:
setDisplay(previousValue — cur-rentValue);
Сохраните этот файл, после чего нажмите кнопку Resume, чтобы "отпустить" приложение и продолжить работу с ним. Используя кнопку C, чтобы сбросить его, повторите действия, которые мы проделали ранее. Теперь все работает как положено!
То, что мы сейчас продемонстрировали, — это поддержка Eclipse'ом новой возможности (которая носит название HotSwap) JVM версии 1.4. Теперь Java Platform Debugger Architecture (JPDA) поддерживает возможность замены исходного кода у выполняющегося приложения.
Это особенно полезно, когда запуск приложения или нахождение места, где оно "рушится", отнимает много времени.

Интересные возможности в ближайших версиях Eclipse
Одна весьма интересная особенность Eclipse — это скорость, с которой отлавливаются ошибки и с которой разработчики реагируют на различные нужды и пожелания пользователей. Eclipse Consortium ежемесячно выпускает последние релизы, которые включают в себя стабильные версии различных возможностей, которыми интересуются пользователи (такие релизы содержат в названии идентификаторы M1, M2, M3 и т.д.). Среди возможностей, включенных в релиз 2.1 M3, можно выделить следующие, наиболее значимые:
— настраиваемые связи горячих комбинаций клавиш включая набор связей, схожий с тем, что есть в Emacs;
— возможность автоматической вставки TODO, FIXME и других тэговых комментариев в Java-код, в различные элементы и списки задач;
— улучшенная поддержка CVS включая возможность определять working sets, которые ограничивают количество отображаемых проектов на панели CVS Repositories;
— новые заготовки в Java-редакторе, которые могут использоваться для показа исходного кода, Javadoc, детальных сообщений об ошибках для каждой строки кода или выражения в выпадающем (tooltip) окне;
— поддержка нескольких новых рефакторингов;
— новая панель Threads and Monitors в отладчике, что позволяет определить, какие из нитей (потоков) блокируют ресурсы, какие из них находятся в ожидании и прочую полезную информацию для отладки мультипотоковых приложений;
— более тесная интеграция с инструментом сборки Jakarta Ant.
Эта последняя особенность и делает Eclipse хорошо скомпонованной средой разработки Java-приложений и, в частности, разработки web-приложений.
Eclipse объединяет в себе все инструменты, которые необходимы разработчику, чтобы успешно разрабатывать web-приложения: расширяемую IDE, стандартный компилятор, возможность удаленной отладки, поддержка Ant, тестирование с помощью JUnit, plug-in'ы для взаимодействия практически со всеми серверами приложений, а также EJB-контейнер.

Ресурсы
• eclipse.org ( http://www.eclipse.org/ );
• Eclipse Project FAQ ( http://www.eclipse.org/eclipse/faq/eclipse-faq.html );
• Eclipse Platform Technical Overview ( http://www.eclipse.org/whitepapers/eclipse-overview.pdf ).

По материалам Scott Storkel
Подготовил Алексей Литвинюк, http://www.litvinuke.hut.ru



Компьютерная газета. Статья была опубликована в номере 18 за 2003 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета