Запуск и отладка кода
Итак, вы скачали и установили Eclipse, создали новый Java-проект и добавили необходимые файлы и папки для своего простого приложения. Настало время проверить это приложение в деле, запустив его. Для этого вам нужно установить ракурс Java, чтобы выполнить шаги, которые необходимы для запуска приложения:
1. Из основного меню Run выберите элемент Run...
2. В появившемся диалоге "мастера" запуска, выберите "Java Application" из списка Launch Configurations и нажмите кнопку New
Рисунок 11
3. В качестве имени новой конфигурации введите Calculator
4. Нажмите кнопку Search... и выберите основным классом класс Calculator в поле Main class, или просто введите в поле ввода полное имя класса: com.devious.calculator.Calculator.
Рисунок 12
5. Нажмите кнопку Run, чтобы сохранить установленную конфигурацию и запустить приложение.
Рисунок 13
Создав однажды конфигурацию запуска своего приложения, вы можете запускать его вновь с помощью меню Run->Run History или кнопки Run на панели инструментов. Если вы потратите достаточно времени, "играя" с этим калькулятором, вы обнаружите, что он работает в основном правильно, но только с одном "но": он не хочет правильно выполнять операцию вычитания! Время пустить в ход отладчик исходного кода Eclipse и обнаружить эту злосчастную ошибку. Если вы следовали всем инструкциям, приведенным выше в этой статье, то вы можете запустить это приложение с отладчиком с той же конфигурацией, которую мы определили для обычного запуска. Для этого выберите в меню пункт Run->Debug History->Calculator.
Когда вы запускаете свое приложение вместе с отладчиком, Eclipse автоматически переключается в ракурс Debug:
Рисунок 14
Поскольку, обнаруженная нами, проблема сконцентрирована вокруг функции вычитания, мы установим точку прерывания (breakpoint) в обработчик события для кнопок "-" и "=". Для начала, нам нужно переключиться в закладку редактора класса CalcPanel. (Если у вас нет закладки с исходным кодом этого класса, вам нужно открыть файл с именем CalcPanel.java, предварительно переключившись в ракурс Java или Resource и потом вернуться обратно в ракурс Debug).
Воспользуйтесь панелью Outline, чтобы определить местонахождение метода actionPerformed. Переместитесь немного ниже, пока не обнаружите выражение case для знака "-" (строка 126). Если вы выполните двойной клик на левой границе этой строки, Eclipse автоматически установит точку прерывания в ней. Переместитесь немного ниже и установите еще одну точку прерывания на вызове метода model.calculate() в обработчике события кнопки "=" (строка 138).
Рисунок 15
Теперь переключитесь в окно калькулятора и нажмите несколько кнопок. Например, "2", "4", "6" и "-". Как только отладчик натыкается на точку прерывания, вы можете видеть появившиеся кнопки на панели инструментов Debug, которые служат для пошагового прохождения по исходному коду, причем можно делать шаги по коду и, не заходя внутрь методов, выполнять их автоматически, или же, заходя внутрь, проходиться и по их исходному коду.
Рисунок 16
Если мы зайдем внутрь метода setOperation(), станет понятно, что он выполняют достаточно тривиальную функцию: сохраняет код операции в поле pendingOp. Теперь нажмите кнопку Resume на панели инструментов Debug, чтобы продолжить выполнение программы.
Замечание: Основная ошибка новых пользователей Eclipse в том, что они иногда нажимают кнопки Debug или Run на основной панели инструментов (что приводит к запуску еще одной копии приложения) вместо того, чтобы нажать Resume.
Теперь нажмите еще пару кнопок (например, "1", "2", "3") и после этого кнопку "=". Таким образом, мы оказываемся внутри метода calculate(), проблема оказалась очевидна: кто-то скопировал код из варианта OP_ADD, но забыл заменить знак + на -. Проблема решена! :)