Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компиляция и запуск средствами командной строки




Исходные тексты java-программ можно откомпилировать средствами пакета JDK. Для компиляции используется модуль javac, а для запуска скомпилированных.class файлов — интерпретатор java.

Что бы произвести компиляцию исходного файла.java, содержащего код программы, в консоли (терминале) достаточно ввести строку:

javac [ options ] имя_файла [ @argfiles ]

Options — параметры компиляции, задающиеся с помощью символа «-». Например:

-version — информация о версии установленного ПО;

-encoding — установка кодировки текста компилируемого файла;

-nowarn — отключение отображения предупреждений.

Подробную информацию о имеющихся параметрах компиляции можно узнать с помощью команды:

man javac

Имя_файла — это имя файла, содержащего исходный код программы. По умолчанию, при запуске с терминала, текущим каталогом является домашняя папка пользователя /home/ user. В качестве имени файла указывается либо полное имя файла, вместе с путем до указанного.java-файла, либо собственное имя.

@argfiles — параметр, предназначенный для упрощения команды компиляции. Если необходимо откомпилировать несколько файлов, то требуется записать список имен файлов в текстовый файл (например files), а список параметров в другой (например params). Затем командой javac @params @files можно будет произвести компиляцию указанных классов с заданными параметрами, тем самым значительно упрощая саму команду.

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

/home/ user / workspace / Hello /src/ErrorTests.java

Папки user, workspace и Hello в вашем случае могут иметь другие имена. (User — это имя пользователя, workspace — имя рабочего пространства, Hello — имя Java-проекта).

Запустите терминал и в соответствии с именами папок введите команду:

javac workspace/Hello/src/ErrorTests.java

В случае удачной компиляции в данной папке появится файл ErrorTests.class.

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

java [options] имя_файла. class [params]

Введите в терминале команду

java workspace/Hello/src/ErrorTests.java

В результате выполнения программы в командной строке терминала будет выведена строка «Hello».

· Отладка и тестирование приложений

Отладка — это процесс пошаговой проверки программ и приложений с целью выявления ошибок.

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

Рассмотрим отладку на примере. Создайте новый класс с именем Debuging и введите предложенный в листинге код.

public class Debuging {

public static void main(String[] args){

for (int i=0;i<10;i++){

System. out. print("Шаг "+i+"\n");

}

}

}

Для запуска отладчика нажмите кнопку с изображением жука.

При нажатии данной кнопки включается режим отладки текущей программы, если окно кода программы активно. Если активна панель Package Explorer, то отладке подвергнется выбранный (выделенный) класс, при этом класс можно дополнительно выбрать, если их несколько.

На рис. 21 выделено поле, в котором пользователь может установить точки прерывания.

Рис. 21. Линейка точек прерывания

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

Установите точку прерывания напротив строки

System. out. print("Шаг "+i+"\n");.

После того, как вы установите точку прерывания и нажмете кнопку , на экране появится диалоговое окно (рис. 22), предлагающее переключить режим рабочего стола из Java в Debug.

Рис. 22. Предложение переключения рабочего стола

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

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

Рис. 23. Рабочий стол Debug

В компоновке Debug можно выделить следующие основные компоненты:

· Окно Debug. В данном окне отображаются задействованные в отладке элементы, а так же панель управления процессом отладки (рис. 24).

Рис. 24. Окно Debug

 

· Окно состояния переменных и точек прерывания. Вкладка Variables содержит список переменных, задействованных в текущей точке прерывания. Данное окно является наиболее важным в процессе отладки, оно производит мониторинг переменных на каждой точке прерывания. Именно с помощью данного окна программист может увидеть поведение объекта, изменение его свойств более тщательно в процессе выполнения программы. Вкладка Breakpoints содержит список точек прерывания, которые установил программист. Точки прерывания можно отключать и включать в процессе отладки, устанавливая или удаляя маркер напротив нужной точки (рис. 25). В левом столбце указаны идентификаторы (имена) переменных, в правом — их текущее значение.

Рис. 25. Окно переменных

 

· Панель Outline, редактор кода и консоль. Назначение данных элементов рассмотрено ранее.

Теперь программа запущена в режиме отладки. Последовательно выполняя операторы программы, отладчик доходит до первой точки и останавливает ход выполнения. Программист имеет возможность посмотреть значение переменных программы на момент останова. После того как вы проанализируете состояние программы, ее можно продолжать. Нажмите кнопку («Resume») или клавишу F8 для продолжения.

В нашем случае программа была остановлена на операторе вывода данных на консоль. После продолжения выполнения тело цикла продолжит выполняться, так как в теле нашего цикла только один оператор, он выполнится, и на консоль выведется первая строка, на первом шаге переменная i=0, в этом можно убедиться просмотрев вкладку Variables окна состояния (рис. 26).

Рис. 26. Состояние переменных на первом шаге

После вывода строки цикл начнет выполняться еще раз, переменная i изменится и станет равной 1. При этом в панели Variables она выделится желтым цветом, что сигнализирует о изменении ее значения (рис. 27).

Рис. 27. Состояние переменных на втором шаге

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

В отладчике Eclipse есть еще одна полезная функция, с помощью которой можно увидеть значения сложных выражений. Например, нас интересует значение логического выражения (условие), при котором выполняется цикл. Для этого выделите нужный текст, в нашем случае это i<10 в блоке условия цикла, и нажмите сочетание клавиш <Ctrl>+<Shift>+D, появится всплывающее окно, в котором будет отображен тип выражения (в нашем случае это boolean) и его состояние.

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

Для прерывания работы отладчика нажмите кнопку в панели Debug.

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

Для того, чтобы задать условие, при котором будет происходить останов, нужно открыть окно свойств точки прерывания. Для этого наведите курсор мыши на нужную точку прерывания в строке, нажмите правую кнопку мыши, и выберите в раскрывающемся меню пункт Breakpoint Properties, откроется окно свойств выбранной точки прерывания (рис. 28).

Установите галочку на кнопке выбора Enable Condition (Включить Условие) и в поле ввода введите необходимое условие, при котором будет происходить останов на данной точке. Для примера, введите логическое выражение (i%2)==0. Данное выражение будет принимать значение «истина» каждый раз, когда остаток от деления i на 2 будет равен 0, то есть каждый раз, когда i будет принимать четные значения. Запустите процесс отладки и убедитесь в том, что теперь останов будет происходить каждые два прохода цикла, а не один, как было раньше.

Так же можно выбрать тип условия прерывания — ниже, под полем ввода находится две кнопки выбора — condition is 'true' и value of condition changes. При выборе первого, останов будет происходить каждый раз, когда введенное логическое выражение примет значение «истина», при выборе второго, останов будет происходить каждый раз, когда введенное значение или константа изменит свое значение.

Раскрывающийся список Suspend Policy устанавливает политику останова. При выборе значения Suspend Thread останов будет происходить на уровне текущего потока thread, при выборе Suspend VM — на уровне самой виртуальной машины Java.

Рис. 28 Свойства точки прерывания

· Лабораторный практикум




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 692; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.