Разработка общих приложений Java
В следующем кратком учебном курсе рассматриваются основные действия при разработке приложений для Java SE в среде IDE NetBeans. Данный учебный курс предполагает наличие базовых знаний о разработке приложений на Java. Здесь представлены некоторые возможности среды IDE, которые позволяют упростить процесс разработки приложений.
В рамках данного руководства будет создано приложение для получения из нескольких исходных слов одного слова, содержащего по одной букве из каждого исходного слова. Про такое слово можно сказать, что оно имеет форму акронима (acrostic).
Изучение материала, представленного в этом руководстве, занимает приблизительно 30 минут. Если требуется использовать более краткое руководство "Hello World", обратитесь к Руководству по началу работы со средой Java IDE NetBeans.
Содержание
Для работы с этим учебным курсом потребуются программное обеспечение и ресурсы, перечисленные в таблице ниже.
Настройка проектов
Создаваемое приложение будет содержать два проекта:
- проект библиотеки классов Java, в котором будет создан служебный класс;
- проект приложения Java с главным классом, который реализует метод из служебного класса проекта библиотеки.
После создания проектов проект библиотеки будет добавлен к пути к классам проекта приложения. Затем должен быть написан код приложения. В проект библиотеки будет включен служебный класс с методом acrostic. Метод acrostic использует в качестве параметра массив слов, а затем на основе этих слов создает акроним. Проект "MyApp" будет содержать главный класс, который вызывает метод acrostic и передает слова, введенные в качестве параметра при выполнении приложения.
Примечание: Строго говоря, для такого простого приложения создавать целых два проекта не обязательно. В этом руководстве на примере двух проектов рассматриваются функции, которые могут потребоваться при создании более сложных приложений.
- Выберите команду "Файл > Новый проект" (CTRL+SHIFT+N). В области "Категории" выберите "Java". В области "Проекты" выберите "Библиотека классов Java". Нажмите кнопку "Далее".
- В поле "Имя проекта" введите
MyLib. В поле "Местоположение проекта" укажите любой каталог на компьютере. Всюду далее в настоящем учебном пособии это будет каталог с именем NetBeansProjects.
Примечание. Указанный выше путь должен отображаться следующим образом в поле "Папка проекта" мастера: /NetBeansProjects/MyLib/
- Установите флажок "Использовать отдельную папку для хранения библиотек" и укажите местоположение папки библиотек (необязательно). Дополнительные сведения об этом параметре приведены в разделе Совместное использование библиотек проекта.
- Нажмите кнопку "Готово". Проект "MyLib" будет открыт как в окне "Проекты", так и в окне "Файлы".
- Выберите команду "Файл > Новый проект". В области "Категории" выберите "Java". В области "Проекты" выберите "Приложение Java". Нажмите кнопку "Далее".
- В поле "Имя проекта" введите
MyApp. Убедитесь, что в качестве местоположения проекта указано NetBeansProjects.
- Установите флажок "Использовать отдельную папку для хранения библиотек" (необязательно).
- В качестве главного класса введите
acrostic.Main.
- Проверьте, что установлены флажки "Установить как главный проект" и "Создать главный класс".
- Нажмите кнопку "Готово". Проект "MyApp" отображается в окне "Проект", а в редакторе исходного кода открывается
Main.java.
Поскольку проект "MyApp" будет зависеть от класса в проекте "MyLib", необходимо добавить "MyLib" в путь к классам, указанный в "MyApp". Это также обеспечит возможность обращения классов в проекте "MyApp" к классам в проекте "MyLib" без ошибок компиляции. Кроме того, это позволит использовать функцию автозавершения кода в проекте "MyApp" для подстановки исходного кода на базе проекта "MyLib". В среде IDE путь к классам визуально представлен узлом "Библиотеки".
Для добавления служебных классов библиотеки в путь к классам проекта:
- В окне "Проекты" щелкните правой кнопкой мыши узел "Библиотеки" для проекта "MyApp" и выберите команду "Добавить проект".

- Перейдите к
NetBeansProjects/ и выберите папку проекта MyLib. На экране "Файлы JAR проекта" отображаются архивы JAR, которые можно добавить к проекту. Учтите, что архив JAR для проекта "MyLib" отображается даже в том случае, если он фактически еще не создан. Этот архив JAR будет создан в процессе сборки и выполнения проекта "MyApp".
- Нажмите кнопку "Добавить файлы JAR проекта".
- Разверните узел "Библиотеки". Архив JAR проекта "MyLib" добавлен в путь к классам проекта "MyApp".
Создание и изменение исходного кода Java
Теперь необходимо создать пакет Java и добавить метод, который будет использоваться для создания акронима. После этого требуется реализовать метод acrostic в классе Main.
Создание пакета Java и файла класса
- Щелкните правой кнопкой мыши узел проекта "MyLib" и выберите "Создать > Класс Java". Введите имя нового класса
LibClass, затем введите org.me.mylib в поле "Пакет" и нажмите кнопку "Готово". В редакторе исходного кода откроется LibClass.java.
- В
LibClass.java установите курсор на строке после объявления класса (public class LibClass {).
- Введите или вставьте следующий код метода:
public static String acrostic(String[] args) {
StringBuffer b = new StringBuffer();
for (int i = 0; i < args.length; i++) {
if (args[i].length() > i) {
b.append(args[i].charAt(i));
} else {
b.append('?');
}
}
return b.toString();
}
- Если вставленный код отформатирован неправильно, нажмите сочетание клавиш ALT+SHIFT+F для переформатирования всего файла.
- Для сохранения файла нажмите сочетание клавиш CTRL+S.
Изменение файла Java
Теперь добавим код в Main.java. При этом воспользуемся функциями автозавершения кода и шаблона кода (сокращения), предусмотренными в редакторе исходного кода.
- Выберите вкладку
Main.java в редакторе исходного кода. Если он еще не открыт, разверните узел "MyApp > Исходные файлы > acrostic" в окне "Проекты" и дважды щелкните Main.java.
- Удалите комментарий
// TODO code application logic here в методе main.
- Вместо этого комментария введите следующее:
String result = Li
Установите курсор сразу же после Li. Теперь можно воспользоваться функцией автозавершения кода для подстановки LibClass вместо Li.
- Нажмите сочетание клавиш CTRL+ПРОБЕЛ для вызова окна автозавершения кода.
Появится небольшой список допустимых подстановок. Однако требуемого класса LibClass там может не оказаться.
- Для просмотра расширенного списка возможных соответствий еще раз нажмите сочетание клавиш CTRL+ПРОБЕЛ.
Класс LibClass должен находиться в этом списке.
- Выберите
LibClass и нажмите клавишу ВВОД. Оставшаяся часть имени класса будет автоматически подставлена в код средой IDE. Кроме того, для этого класса также автоматически создается оператор импорта.
Примечание. Над окном автозавершения кода также открывается окно с документацией Javadoc по выбранному классу или пакету. Поскольку для этого пакета документация Javadoc отсутствует, в поле отображается сообщение "Не удалось найти сообщение Javadoc".
- В главном методе введите точку (.) после записи
LibClass. Снова появится поле автозавершения кода.
- Выберите метод
acrostic(String[]args) и нажмите клавишу ВВОД. После автоматического заполнения метода acrostic появится выделенный параметр args.
- Нажмите клавишу ВВОД для подтверждения параметра
args.
- Введите точку с запятой (;).
Последняя строка должна выглядеть следующим образом.
String result = LibClass.acrostic(args);
- Нажмите клавишу ВВОД для вставки новой строки. Затем введите
sout и нажмите клавишу TAB. Сокращение sout расширяется до System.out.println("");, а курсор устанавливается между кавычками. Введите Result = в кавычках и + result после закрывающей кавычки.
Последняя строка должна выглядеть следующим образом.
System.out.println("Result = " + result);
- Для сохранения файла нажмите сочетание клавиш CTRL+S.
Примечание. Sout является одним из многих шаблонов кода, доступных в редакторе исходного кода. Чтобы найти и изменить список шаблонов кода, выберите "Средства > Параметры > Редактор > Шаблон кода".
Компиляция и выполнение приложения
Теперь для выполнения проекта необходимо указать главный класс и аргументы выполнения.
Примечание. По умолчанию при создании этого проекта была включена функция "Компиляция при сохранении", поэтому необходимость в предварительной компиляции кода до запуска приложения в среде IDE отсутствует. Дополнительные сведения о функции "Компиляция при сохранении" приведены в соответствующем разделе руководства Создание, импорт и настройка проектов Java.
Установка главного класса и аргументов выполнения
Выходные данные программы зависят от аргументов, передаваемых при выполнении программы. В качестве аргументов будет использоваться пять слов, на основе которых будет создан акроним "Hello". Получаемое слово будет состоять из первой буквы первого слова, второй буквы второго слова, третьей буквы третьего слова и т.д.
Добавление аргументов для IDE с целью использования при выполнении приложения:
- Щелкните правой кнопкой мыши узел проекта "MyApp", выберите команду "Свойства", а затем выберите узел "Выполнить" в левой области диалогового окна.
В качестве главного класса должен быть указан acrostic.Main.
- Введите
However we all feel zealous в поле "Аргументы" и нажмите кнопку "ОК".
Запуск приложения
Приложение создано. Теперь с помощью аргументов выполнения можно протестировать работу приложения в среде IDE.
Выполнение приложения в среде IDE:
Тестирование и отладка приложения
Теперь создадим тест и протестируем проект с помощью JUnit, а затем запустим его в отладчике IDE для проверки на наличие ошибок. Тестирование LibClass в JUnit осуществляется путем передачи фразы в метод acrostic и сверки результата с предполагаемыми выходными данными программы.
Создание тестов JUnit
- Щелкните правой кнопкой мыши узел
LibClass.java в окне "Проекты" и выберите "Сервис > Создать тесты JUnit" (CTRL+SHIFT+U).
Если тесты JUnit в среде IDE создаются впервые, появится диалоговое окно выбора версии "Выберите версию JUnit". Нажмите клавишу ВВОД для выбора JUnit 4.x и перейдите (кнопка "Продолжить") к диалоговому окну "Создать тесты".
- В диалоговом окне "Создать тесты" нажмите кнопку "ОК" для выполнения команды с параметрами по умолчанию. Средой IDE будет автоматически создан пакет
org.me.mylib и файл LibClassTest.java в отдельной папке test. Этот файл можно просмотреть путем развертывания узла "Тесты" и в нем подузла org.me.mylib.
- В
LibClassTest.java удалите тело метода public void testAcrostic().
- Вместо удаленных строк введите или вставьте следующее:
System.err.println("Running testAcrostic...");
String result = LibClass.acrostic(new String[]
{"fnord", "polly", "tropism"});
assertEquals("Correct value", "foo", result);
- Сохраните файл путем нажатия CTRL+S.
Выполнение тестов JUnit
- Выберите узел проекта "MyLib", а затем выберите "Выполнить > Тестовый проект (MyLib)" (ALT+F6). В окне "Вывод" откроется вкладка
MyLib (test). После этого производится компиляция и выполнение тестов JUnit. Результат тестирования JUnit показывает, что тест пройден.
- Вместо тестирования целого проекта можно также запустить отдельный файл теста. Выберите вкладку
LibClass.java в редакторе исходного кода, а затем выберите "Выполнить > Тестовый файл".
В среде IDE доступна документация по интерфейсу API JUnit. Выберите команду "Справка > Справочные сведения Javadoc > JUnit VersionNumber".
Дополнительные сведения о платформе JUnit приведены на странице http://www.junit.org.
Отладка приложения
В этом разделе с помощью отладчика последовательно выполняются все операции в приложении и рассматривается изменение значений переменных при создании акронима.
Выполнение приложения в отладчике
- В файле
LibClass.java перейдите к методу acrostic и установите курсор в любом месте внутри b.append(args[i].charAt(i));. Затем нажмите сочетание клавиш CTRL+F8 для создания точки останова.
- Выберите "Отладить > Отладить главный проект" (CTRL+F5). Среда IDE открывает окна отладки и выполняет проект в отладчике до достижения установленной точки останова.
- Откройте окно "Локальные переменные" в нижней области среды IDE и разверните узел
args. Массив строк содержит фразу, введенную в качестве аргументов команды.
- Нажмите клавишу F7 (или выберите команду "Отладить" > "Войти") для перехода к программе и просмотра изменения переменной
b по завершении создания акронима.
После завершения программы окна отладки закрываются.
Дополнительные сведения приведены в разделе Написание тестов JUnit в среде IDE NetBeans.
Сборка, выполнение и распространение приложения
Убедитесь, что приложение работает соответствующим образом, после чего можно перейти к подготовке приложения к развертыванию вне среды IDE. В этом разделе будет создан архив JAR приложения, который затем будет запущен из командной строки.
Построение приложения
Основная команда сборки в среде IDE – команда "Очистить и построить". Командой "Очистить и построить" удаляются предварительно скомпилированные классы и другие результаты предыдущей сборки, после чего выполняется повторное построение проекта.
Примечание. Кроме того, существует команда "Построить", использование которой не приводит к удалению результатов предыдущего построения. Эта команда отключена по умолчанию. Дополнительные сведения приведены в разделе "Компиляция при сохранении" в руководстве Создание, импорт и настройка проектов Java.
Для построения приложения выполните следующие действия.
- Выберите команду "Выполнить > Очистить и построить главный проект" (SHIFT+F11).
Результат выполнения сценария построения Ant должен появиться в окне "Вывод". Если окно "Вывод" не отображается, его можно открыть вручную путем выбора команды "Окно > Вывод > Вывод".
При очистке и построении проекта выполняются следующие действия:
- Удаляются ("очищаются") папки результатов, созданные при предыдущем построении. (В большинстве случаев это папки
build и dist).
- К папке проекта (далее именуемой "папка PROJECT_HOME") добавляются папки
build и dist. Эти папки можно просмотреть в окне "Файлы".
- Все исходные файлы компилируются в файлы
.class, которые помещаются в папку PROJECT_HOME/build.
- В папке
PROJECT_HOME/dist создается архив JAR, содержащий проект.
- Если для проекта указаны какие-либо библиотеки (кроме JDK), в папке
dist создается папка lib. Библиотеки копируются в папку dist/lib.
- Обновляется файл манифеста в архиве JAR – в него включаются записи, обозначающие главный класс, и все библиотеки, которые расположены по пути к классам проекта.
Примечание. Содержимое можно просмотреть в окне "Файлы" в среде IDE. После завершения процесса создания проекта откройте окно "Файлы" и перейдите к dist/MyApp.jar. Разверните узел архива JAR, откройте папку META-INF и дважды щелкните файл MANIFEST.MF, чтобы открыть его в редакторе исходного кода.
Main-Class: acrostic.Main
Class-Path: lib/MyLib.jar
(Дополнительные сведения о файлах манифеста приведены в этом разделе в учебном курсе по Java).
Запуск приложения вне среды IDE
Для запуска приложения вне среды IDE выполните следующие действия.
- Вызовите командную строку или окно терминала.
- В командной строке измените каталоги на каталог
MyApp/dist.
- В командной строке введите следующий оператор:
java -jar MyApp.jar However we all feel zealous
Далее приложение выполняется и возвращает следующие данные, как показано ниже:
Result = Hello
Распространение приложения другим пользователям
После проверки корректности работы приложения вне среды IDE можно подготовить приложение к распространению.
Для распространения приложения выполните следующие действия.
- В системе создайте файл ZIP, включающий архив JAR приложения (
MyApp.jar) и сопутствующую папку lib, которая содержит файл MyLib.jar.
- Отправьте этот файл пользователям, которые будут работать с приложением. Предоставьте указания по распаковке файла ZIP, определяющие необходимость размещения файла
MyApp.jar и папки lib в одной папке.
- Также предложите пользователям выполнить действия в разделе Запуск приложения вне среды IDE.
Другие распространенные задачи
Работа с основной частью учебного курса завершена. При этом необходимо уделить внимание другим базовым задачам. В этом разделе рассматривается несколько таких задач.
Обеспечение доступности документации Javadoc в среде IDE
Для просмотра документации по интерфейсу API JavaSE в среде IDE NetBeans используйте команды "Источник" > "Просмотреть документацию" или выберите команду "Окно > Прочее > Javadoc" в главном меню для вывода документации по интерфейсу API в отдельном окне.
Однако для некоторых сторонних библиотек документация по API недоступна. В этом случае ресурсы Javadoc необходимо связать со средой IDE вручную.
Обеспечение доступности документации Javadoc по API через команду "Просмотреть Javadoc":
- Загрузите источник документации Javadoc по интерфейсу API.
- Выберите команду "Сервис > Библиотеки".
- В списке "Библиотеки" выберите библиотеку, которая используется для проекта.
- Выберите вкладку "Javadoc".
- Нажмите кнопку "Добавить архив ZIP/папку" и перейдите к файлу ZIP или к папке, содержащей документацию Javadoc по интерфейсу API в системе. Выберите файл с ZIP или папку и нажмите кнопку "Добавить архив ZIP/папку".
- Нажмите кнопку "Закрыть".
Создание документации Javadoc для проекта
Скомпилированную документацию Javadoc для проекта можно создать на основе комментариев Javadoc, добавленных к классам.
Для создания документации Javadoc для проекта:
- Выберите проект "MyLib".
- Выберите "Выполнить" > "Создать документацию Javadoc для MyLib" в главном меню среды IDE.
Созданная документация Javadoc добавляется к папке dist проекта. Кроме того, в среде IDE открывается веб-браузер, в котором отображается документация Javadoc.
Что дальше?
Дополнительные сведения о разработке приложений для Java SE в среде IDE NetBeans приведены в следующих материалах: