Последнее обновление: 22.11.2022
Итак, после установки JDK создадим первое приложение на языке Java. Что необходимо для создания программы на Java? Прежде всего нам надо написать код программы, и для этого нужен текстовый редактор.
Можно использовать любой текстовый редактор, например, Notepad++.
И чтобы превратить код программы в исполняемое приложение необходим компилятор. После установки JDK все файлы по умолчанию помещаются в каталог C:\Program Files\Java\jdk-[номер_версии] (при использовании ОС Windows).
В моем случае это каталог C:\Program Files\Java\jdk-19. Если мы откроем в нем подкаталог bin, то мы сможем увидеть в нем ряд утилит.
Нас прежде всего интересует утилита компилятора javac. Чтобы скомпилировать класс программы, нам надо передать ее код этому компилятору.
Также следует отметить другую утилиту из этой папки — java.exe, которая позволяет запускать скомпилированную программу.
Итак, создадим на жестком диске какой-нибудь каталог, в котором будут располагаться файлы с исходным кодом на языке Java. Допустим, это будет каталог
C:/Java. Затем создадим в этом каталоге текстовый файл, который переименуем в Program.java.
Откроем этот файл в любом текстовом редакторе и наберем в нем следующую программу:
public class Program{ public static void main (String args[]){ System.out.println("Hello Java!"); } }
Java является объектно-ориентированным языком, поэтому вся программа представляется в виде набора взаимодействующих классов.
В данном случае определен один класс Program.
При определении класса вначале идет модификатор доступа public, который указывает, что данный класс будет доступен
всем, то есть мы сможем его запустить из командной строки. Далее идет ключевое слово
class, а затем название класса. То есть класс называется Program. После названия в фигурных скобках расположено содержимое класса.
Класс может содержать различные переменные и методы. В данном случае у нас объявлен один метод main.
Это главный метод в любой программе на Java, он является входной точкой программы и с него начинается все управление. Он обязательно
должен присутствовать в программе.
Метод main также имеет модификатор public
. Слово static
указывает, что метод main — статический, а слово void
— что он не возвращает никакого значения. Позже
мы подробнее разберем, что все это значит.
Далее в скобках у нас идут параметры метода — String args[]
— это массив args, который хранит значения типа String
, то
есть строки. В данном случае ни нам пока не нужны, но в реальной программе это те строковые параметры, которые передаются при запуске программы из
командной строки.
После списка параметров в фигурных скобках идет тело метода — это собственно те инструкции, которые и будет выполнять метод.
В данном случае фактически определени определена только одна инструкция — вывод на консоль некоторой строки. Для вывода на консоль используется встроенный метод
System.out.println()
. В этот метод передается выводимая строка. Каждая инструкция завершается точкой с запятой.
Теперь скомпилируем написанную программу. Откроем командную строку (в Windows) или терминал в Linux/MacOS и введем там соответствующие команды. Первым делом перейдем в каталог, где лежит наш файл с программой с помощью команды:
В данном случае файл находится в каталоге C:\Java.
Затем cкомпилируем программу с помощью команды
C:\Java>"C:\Program Files\Java\jdk-19\bin\javac" Program.java
Обратите внимание, что весь путь к компилятору javac берется в кавычки, а затем через пробел идет название нашего файла, который содержит
класс программы.
После этого программа компилируется в байт-код, и в каталоге C:\Java можно будет найти новый файл Program.class.
Это и будет файл с байт-кодом программы. Теперь нам надо его запустить с помощью утилиты java:
C:\Java>"C:\Program Files\Java\jdk-19\bin\java" Program
Здесь уже расширение у файла не надо использовать.
Для ОС Windows весь процесс будет выглядеть следующим образом:
Добавление java в переменную Path
Для компиляции приходится вводить полный путь к комилятору javac, что может быть сопряжено с ошибками при вводе, да и каждый раз вводить полный путь тоже неудобно.
Чтобы в дальнейшем облегчить работу, добавим путь к JDK в переменную PATH в переменных среды. Если мы работаем в Windows, то для добавления переменной среды
через поиск найдем найдем параметр Изменение системных переменных среды. Для этого введем в поле поиска «Изменение системных переменных среды»:
Выберем пункт Изменение системных переменных среды. И сначала нам откроется окно «Свойства системы», где нажмем на кнопку
Переменные среды:
Затем нам откроется окно, где мы можем увидеть все переменные среды.
(Также можно перейти через Параметры и пункт Система ->Дополнительные параметры системы ->Переменные среды)
Здесь нам нужно исправить системную переменную Path. Для этого выделим ее и нажмем на кнопку «Изменить»:
В эту переменную Path нам надо добавить путь к инструментам JDK. И тут есть два момента.
Во-первых, при установке jdk по умолчанию ряд утилит также устанавливаются в папку C:\Program Files\Common Files\Oracle\Java\javapath. В том числе это такие файлы как
java.exe и javac.exe. И путь к этой папке по умолчанию добавляется в перемнную Path. То есть мы можем использовать этот путь.
Второй момент — в последних сборках Windows компания Microsoft также устанавливает свои сборки JDK, точнее OpenJDK, которые также по умолчанию добавляются в переменную Path
и которые мы также можем использовать. Но у этих сборок есть большой минус — они применяют одну из прошлых версий JDK (обычно это LTS-сборки). Например, в моем случае это 11-я версия,
но текущая версия может отличаться (например, на написание данной статьи текущей являлась версия 19).
Чтобы использовать последнюю версию среди путей в переменной Path убедимся, что путь C:\Program Files\Common Files\Oracle\Java\javapath располагается выше
путей к сборкам JDK от Microsoft. Для перемещения определенного пути вверх среди переменных среды можно использовать кнопку «Вверх:
Также можно напрямую использовать путь к JDK.
Для создания новой переменной надо нажать на кнопку «Создать» и ввести в новое поле путь «C:\Program Files\Java\jdk-[номер_версии]\bin». Но опять же его следуется с помощью кнопки Вверх поместить
над путями к OpenJDK от Microsoft.
После установки переменной Path перейдем к командной строке/терминалу (в более старых версиях Windows может потребоваться перезауск командной строки) и для проверки версии введем команду
Консоль нам должна в ответ ввести номер только что установленной версии JDK (в моем случае 19-й версии):
java version "19.0.1" 2022-10-18 Java(TM) SE Runtime Environment (build 19.0.1+10-21) Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
И после этого можно вводить только названия утилит без полных путей:
Обработка файлов в Java необходима для выполнения различных задач, таких как создание, чтение, запись и т. д. В этой статье я расскажу вам, как создать файл в Java с использованием различных методов.
Одна из главных причин популярности Java – независимость от платформы. Java по-прежнему является актуальным языком программирования, который не имеет признаков снижения популярности, и поэтому его стоит изучать. Большинство разработчиков выбирают его как свой первый язык программирования, потому что его легко выучить.
Все языки программирования высокого уровня (также называемые третьим поколением) позволяют писать программы на языке, аналогичном (хотя и гораздо более простом), чем естественный язык. Программа высокого уровня называется исходным кодом.
Что такое файл в Java?
Файл – это не что иное, как простое хранилище данных на языке Java. Файловая система может реализовывать ограничения для определенных операций, таких как чтение, запись и выполнение. Эти ограничения известны как права доступа.
При чтении файла в Java мы должны знать класс файлов Java. Класс Java File представляет файлы и имена каталогов в абстрактной манере. Класс File имеет несколько методов для работы с каталогами и файлами, таких как создание новых каталогов или файлов, удаление и переименование каталогов или файлов и т. д. Объект File представляет фактический файл / каталог на диске.
Теперь давайте разберемся с различными методами создания файла.
Методы для создания файла в Java
1. Создайте файл с классом java.io.File
Вам нужно использовать метод File.createNewFile(). Этот метод возвращает логическое значение:
- истина, если файл выполнен.
- false, если файл уже существует или операция по какой-то причине не открывается.
Этот метод также генерирует исключение java.io.IOException, когда он не может создать файл.
Когда мы создаем объект File, передавая имя файла, он может быть с абсолютным путем, или мы можем предоставить только имя файла, или мы можем предоставить относительный путь. Для неабсолютного пути объект File пытается найти файлы в корневом каталоге проекта.
Если мы запустим программу из командной строки, для неабсолютного пути объект File попытается найти файлы из текущего каталога. Экземпляры класса File являются неизменяемыми; то есть, после создания абстрактный путь, представленный объектом File, никогда не изменится.
Теперь давайте рассмотрим небольшой пример и разберемся, как он работает.
File file = new File("c://temp//testFile1.txt"); //create the file. if (file.createNewFile()){ System.out.println("File is created!"); } else{ System.out.println("File already exists."); } //write content FileWriter writer = new FileWriter (file); writer.write("Test data"); writer.close();
Пожалуйста, обратите внимание, что этот метод будет только создавать файл, но не записывать в него никакого содержимого. Теперь давайте двигаться дальше и рассмотрим следующий метод.
2. Создайте файл с классом java.io.FileOutputStream
Если вы хотите создать новый файл и в то же время, если хотите записать в него некоторые данные, вы можете использовать метод записи FileOutputStream. В Java FileOutputStream является классом потока байтов. Чтобы записать данные в файл, вы должны преобразовать данные в байты, а затем сохранить их в файл.
Например:
String data = "Test data"; FileOutputStream out = new FileOutputStream("c://temp//testFile2.txt"); out.write(data.getBytes()); <span>out.close();
Класс FileOutputStream хранит данные в виде отдельных байтов. Может использоваться для создания текстовых файлов. Файл представляет собой хранилище данных на втором носителе, таком как жесткий диск или компакт-диск. Метод FileOutputStream.write() автоматически создает новый файл и записывает в него содержимое.
3. Создайте файл с помощью Java.nio.file.Files – Java NIO
Files.write() – лучший способ создать файл, и он должен быть вашим предпочтительным подходом в будущем, если вы его еще не используете. Это хороший вариант, потому что нам не нужно беспокоиться о закрытии ресурсов ввода-вывода. Каждая строка представляет собой последовательность символов и записывается в файл последовательно, каждая строка заканчивается разделителем строк платформы.
Метод:
public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
Создает новый и пустой файл, и если файл уже существует, то будет ошибка.
Параметры:
путь – путь для создания файла.
attrs – необязательный список атрибутов файла, устанавливаемых атомарно при создании.
Например:
String data = "Test data"; Files.write(Paths.get("c://temp//testFile3.txt"); data.getBytes()); //or List<String> lines = Arrays.asList("1st line", "2nd line"); Files.write(Paths.get("file6.txt"); lines, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
Далее, давайте посмотрим на создание временного файла.
4. Java также может создавать временные файлы
Создание временного файла в java может потребоваться во многих сценариях, но в основном это происходит во время модульных тестов, где вы не хотите сохранять результаты. Как только тестовый пример закончен, вас не волнует содержимое файла.
Создание временного файла с использованием java.io.File.createTempFile()
Public class TemporaryFileExample{ Public static void main(string[] args){ try{ final path path = Files.createTempFile("myTempFile",".txt"); System.out.println("Temp file : " + path); // delete file on exist. path.toFile().deleteonExit(); } catch (IOException e){ e.printStackTrace(); } } }
с использованием NIO
Public class TemporaryFileExample{ Public static void main(string[] args){ File temp; try{ temp = File.createTempFile("myTempFile" , ".txt"); System.out.println("Temp file created : " + temp.getAbsolutePath()); } catch (IOException e){ e.printStackTrace(); } } }
Для создания временного файла используются следующие два метода.
1. createTempFile(Path, String, String, FileAttribute<?>… attrs)
– создает файл tmp в указанном каталоге.
Вышеуказанный метод принимает четыре аргумента.
Путь -> указать каталог, в котором будет создан файл.
Строка -> чтобы упомянуть префикс имени файла. Используйте ноль, чтобы избежать префикса.
Строка -> чтобы упомянуть суффикс имени файла. т.е. расширение файла. Используйте null, чтобы использовать .tmp в качестве расширения.
attrs -> Это необязательно, чтобы упоминать список атрибутов файла, чтобы установить атомарно при создании файла
Например. Files.createTempFile(path,null, null);
– создает временный файл с расширением .tmp по указанному пути
2. createTempFile(String, String, FileAttribute<?>)
– создает временный файл во временном каталоге по умолчанию системы / сервера.
Например: Files.createTempFile (null, null) – создает временный файл во временной папке по умолчанию в системе. В Windows временная папка может быть C: UsersusernameAppDataLocalTemp, где username – ваш идентификатор входа в Windows.
Как вы знаете, Java — один из самых популярных языков программирования в мире и его знание существенно увеличит вашу значимость как программиста. Итак, вы решили начать писать на этом языке. Вам понадобится поставить JDK для того, чтобы писать и запускать программы на Java. JDK — набор софта, разработанного Oracle, содержащий в себе компилятор (javac), среду выполнения (Java Runtime Environment), стандартную библиотеку языка, примеры и документацию. Прочитав эту статью, вы узнаете, как установить и настроить JDK на своей системе, что такое среда разработки и какие варианты IDE существуют для Java. Также вы напишете свою первую программу на Java.
Установка Java Development Kit
- Перейдите на сайт Oracle и загрузите JDK для вашей платформы.
- После загрузки извлеките полученный архив и запустите извлеченное приложение.
- В процессе установке выберите вариант «Development Tool» и нажмите «Next».
- Спустя некоторое время установка завершится.
Итак, вы установили Java Development Kit, но это еще не всё. Необходимо настроить его для вашей системы.
Настройка JDK на примере Windows
- Перейдите в папку
%ProgramFiles%\Java\%версия установленного вами jdk%\bin
, нажмите на свойства любого файла в этой папке и скопируйте путь к нему. - Перейдите в свойства вашего компьютера, откройте вкладку «Дополнительно», нажмите «Переменные среды…». В открывшемся окне создайте новую переменную, назовите её
Path
, в её значение вставьте скопированный ранее путь. - Теперь самое важное. Откройте командную строку и наберите
javac
, чтобы убедиться, что JRE установлен и настроен. Если выдаётся список аргументов к командеjavac
, то поздравляю, вы успешно установили и настроили всё, что необходимо для использования Java!
После установки JDK и JRE не помешает установить на компьютер одну из IDE.
Установка IDE
Для начала разберёмся, что такое IDE.
IDE (Integrated Development Environment) – это комплекс программных средств, используемый программистами для разработки программного обеспечения. IDE позволяет с лёгкостью писать, запускать, отлаживать и тестировать код.
Для написания сложных программ целесообразно использовать IDE. Мы рассмотрим наиболее популярные.
Блокнот
Да, и в блокноте можно писать код! Для разработки вам потребуется всего лишь установить JDK и указать путь к ней. Пишете код в блокноте, компилируете с помощью командной строки. Тем не менее, для разработки сложных программ это не самый лучший вариант из-за отсутствия каких-либо дополнительных возможностей, присутствующих в продвинутых IDE.
NetBeans
NetBeans — выбор профессиональных Java-разработчиков. В ней есть уникальные возможности и инструменты, которые позволят вам сделать вашу программу кроссплатформенной, а код удобочитаемым. NetBeans поддерживает не только Java, но и другие языки программирования для десктоп- и веб-разработки. Она полностью бесплатна, скачать её можно с официального сайта. Вот лишь некоторые её возможности:
- форматирование кода;
- установка сторонних библиотек;
- простой графический интерфейс;
- и многое, многое другое…
Eclipse
Eclipse, как и Netbeans — одна из наиболее популярных IDE. Она предоставляет впечатляющий интуитивно понятный интерфейс и производительную среду разработки, позволяющую комфортно разрабатывать приложения на Java. Скачать Eclipse можно бесплатно с официального сайта. Преимущества:
- возможность форматировать код так, как вам удобно;
- поддержка разбиения кода на модули;
- лёгкость использования одного и того же кода в разных проектах;
- перетаскивание (drag-and-drop);
- просмотр содержимого библиотек;
- удобный интерфейс.
IntelliJ IDEA
IntelliJ IDEA — известная IDE для Java, написанная, как ни странно, на Java. Укомплектована уникальными инструментами и позволяет без проблем ориентироваться в программе. Нахождение ошибок и отладка кода никогда не были такими легкими, как с IntelliJ IDEA.
JCreator
JCreator — продвинутая и самая быстрая IDE для Java, написанная на C++.
Пишем свою первую программу
Итак, вы установили и настроили JDK, JRE и IDE для Java. Каков следующий шаг? Конечно же, написать программу, чтобы окончательно убедиться, что всё работает и вы готовы к изучению языка. Вы познакомитесь с базовой структурой кода на Java и создадите свою первую программу! Стоит отметить, что перед изучением Java следует ознакомиться хотя бы с самыми простыми принципами объектно-ориентированного программирования.
Структуру программы на Java можно представить так:
На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
В файле с исходным кодом содержится несколько классов — это части программы, имеющие определённые функции. Хорошей практикой считается разбиение программы на несколько файлов с исходным кодом, каждый со своим назначением. В классах содержатся методы — действия, которые могут выполнять объекты данного класса. В методе содержатся команды, с помощью которых вы можете получить желаемый результат.
Перед тем, как приступить к созданию программы, необходимо создать проект, а в нём и файл, в котором будет содержаться ваш код. Рассмотрим создание проекта на IDE Eclipse, но в остальных IDE процесс отличается не сильно. Cверху выберите «File», затем наведите курсор на «New», в открывшемся меню выберите «Java Project». В появившемся окне введите имя проекта и другие нужные вам настройки (если не уверены, что делать, то можно просто оставить все как есть) и нажмите «Next». Готово, вы создали проект! Осталось лишь создать в нём класс, в котором вы напишете свою первую программу. Щёлкните правой кнопкой мыши по вашему проекту (он должен появиться справа) и выберите «New» → «Class». Присвойте новому классу имя (в данном примере – это first
) и нажмите «Finish».
Приступим к написанию вашей первой программы. По традиции — это программа, выводящая на экран «Hello, world!».
public class first{
public static void main(String args[])
{
System.out.println("Hello, world!");
}
}
Разберём по частям написанное нами:
public
– это модификатор доступа, определяющий, из какой части программы может использоваться наш класс. В вашем примереpublic
— это весь код;class
– ключевое слово, показывающее, что вы объявляете класс, а не что-либо иное;first
– имя вашего класса. Круглые скобки определяют начало и конец кода класса;public static void main(String args[])
– объявление публичного статического метода (то есть который можно вызвать, не создавая объект класса). Метод в примере ничего не возвращает и принимает в качестве аргументов массив строк. Единственная команда в этом методе выводит в консоль сообщение «Hello, world!». Заметьте, вместоprintln
можно написатьprint
, разница лишь в том, что в случае сprintln
дополнительно выведется символ переноса строки.
Хорошо, вы написали вашу первую программу. Теперь её надо запустить. Для этого просто нажмите белую стрелочку в зеленом кружке на верхней панели (при наведении курсора на неё должно высветиться «Run»). После нажатия внизу откроется консоль, в которой вы увидите сообщение “Hello, world”! Поздравляю, вы написали вашу первую программу на Java и готовы погрузиться в увлекательный мир этого языка!
Полезные ссылки для дальнейшего изучения
Вот несколько ресурсов, которые помогут вам в изучении Java:
- документация Oracle по стандартной библиотеке языка;
- уроки по Java от Oracle;
- теория объектно-ориентированного программирования;
- хорошая книга-самоучитель;
- большое количество интересных и полезных статей про Java на русском языке.
JAR расшифровывается как Java ARchive — архив Java. Если не особо вдаваться в подробности (что в общем-то часто и происходит в реальности), то JAR-файл представляет собой обычный ZIP-файл с некоторыми дополнениями. Основная задача этого архива — хранить файлы с классами. Т.е. пакеты/каталоги (мы о них говорили в разделе Пакеты), внутри которых находятся class-файлы архивируются и JVM может их использовать уже в более удобном (компактном) виде.
Выгода очевидна — в реальных проектах вы вряд ли будете ограничиваться использованием библиотек классов только из JDK — скорее всего вы будете подключать сотни (если не тысячи) классов, которые были созданы для решения определенных задач. Если все это огромное количество лежало бы на диске в виде class-файлов, то несложно понять, насколько это неудобно и громоздко. Разработчики Java предложили вполне элегантное решение — вы можете подключать архивные файлы, в которых запакованы тысячи скомпилированных классов. Что конечно же удобнее, чем таскать за собой в каждый проект все директории со всеми файлами.
Для примера можете заглянуть в каталог JAVA_HOME/jre/lib — там находится очень важный архив — rt.jar. Эта библиотека содержит практически все классы, который мы рассматривали — String, JFrame, JButton, Date, Object. Открыть его вы можете с помощью любого архиватора.
Просматривая содержимое JAR-файла, вы рано или поздно обратите внимание на каталог META-INF. В нем содержится файл MANIFEST.MF. Я настоятельно рекомендую вам почитать информацию о нем в документе Working with Manifest Files: The Basics. Файл позволяет расширить функциональность — кроме обычного набора классов, JAR-файл может выполнять функции электронной подписи, поддержки версионности, подключения библиотек к самому архиву, определение класса для запуска (который содержит метод main). В данной статье я не ставлю себе цель разборать эти возможности, так что отложим на будущее. Займемся базовыми вопросами использования JAR-файлов.
Создание JAR
Использование IDE
Практически все IDE умеют создавать JAR. Мы сделаем это на примере NetBeans, другие IDE вы можете рассмотреть самостоятельно. Что является не всегда интуитивно понятной задачей. В среде NetBeans создать JAR очень несложно. Для этого надо сделать следующие шаги:
- Создать проект в NetBeans. Тип проекта — «New Class Library»
- В этом проекте вы создаете нужные вам классы и потом выполняете команду «Build». Это либо кнопка F11, либо пункт меню «Run — Build Project», либо кликаете правой кнопкой на проекте в панели Project и выбираете пункт «Build» (или «Clean and Build»).
В каталоге с проектом можно увидеть каталог dist в котором и будет находиться JAR-файл. Как я уже упоминал, в других типах IDE этот процесс может выглядеть иначе. Например, в Eclipse это делается через экспорт, а в IDEA — через создание артефактов. В данной цикле статей я не планирую пока останавливаться на этом подробно, хотя если получится — значит прямо здесь и добавлю.
Использование утилиты jar
Также JAR-файл может быть создан с использованием утилиты jar, которая находится в каталоге JAVA_HOME/bin. Достаточно подробно эта утилита разобрана здесь: Creating a JAR File.
В самом просто варианте вам надо создать классы в какой-либо директории, а потом вызвать эту утилиту с такой командой
jar cf <имя JAR—файла> <список входных файлов> |
Например, если у меня есть класс edu/javacourse/jar/SayHello.class, то команда создания архивного файла с именем say.jar выглядела бы так:
jar cf say.jar edu/javacourse/jar/SayHello.class |
Опции «cf» означают: «c» — создать, «f» — файл. Ну а дальше я думаю очевидно — имя файла архива и список файлов. Причем в списке можно указывать много файлов через пробел, а также можно использовать маску — знаки «*» и «?». Если вы не знакомы с такими знаками — наберите в поисковике «маски файлов использование» и наслаждайтесь новыми знаниями.
Чтобы посмотреть содержимое файла вы можете (как я уже говорил выше) использовать практически любой архиватор или тут же команду jar.exe вот в таком виде
В обоих случаях (IDE или утилита jar) в архиве будет создаваться файл MANIFEST.MF. Как я уже писал — есть смысл почитать о дополнительных свойствах JAR-файлов. Т.к. в документации все очень неплохо написано, не буду заниматься переводом. Так что перейдем к следующему пункту нашего путешествия по JAR-файлам.
Подключение готовых JAR-файлов
Командная строка
Итак, я сказал, что основная функция JAR — содержать набор классов в виде class-файлов. Теперь нам надо понять, как подключать JAR-файлы к запускаемому классу, чтобы запускаемый класс мог использовать классы из JAR-файла.
Как вы уже хорошо знаете, запуск программы на Java включает запуск JVM (для Windows это файл java.exe, для Unix — java) и передача ей из командной строки имени класса, который вы собираетесь запускать. Например, для запуска класса First в пакете edu.javacourse.test надо в каталоге, внутри которого находится каталог edu/javacourse/test набрать такую команду:
java edu.javacourse.test.First |
Как видите, в качестве аргумента мы передали полное имя класса, который собираемся запускать. JVM кроме имени класса принимает достаточно много параметров, которые позволяют конфигурировать те или иные свойства JVM. В этой статье мы разберем очень важный элемент — CLASSPATH — который как раз и используется для подключения JAR-файлов.
Сейчас мы проделаем полный цикл создания JAR-файла и его подключения без использования IDE — я очень трепетно отношусь к умению программиста пользоваться командной строкой. Во-первых, это показывает, что вы действительно понимаете суть, во-вторых — этот навык ну просто очень полезен. Например, в том же Unix/Linux очень большое количество работы гораздо удобнее делать в командной строке, да и некоторые продукты содержат утилиты, запускаемые из командной строки. Так что займемся.
Создадим каталог JavaLesson (в принципе мы его уже создавали в разделе Основные шаги. В этом каталоге создадим стуктуру каталогов JarLib/edu/javacourse/jar. С помощью текстового редактора создадим файл SayHello.java
package edu.javacourse.jar; public class SayHello { public void sayHello() { System.out.println(«HELLO»); } } |
Структура наших каталогов должна выглядеть вот так:
C\: JavaLesson JarLib edu javacourse jar SayHello.java |
Теперь время за командной строкой. Запускаем команду «cmd» (если не помните — смотрим раздел Основные шаги). Переходим в каталог JavaLesson/JarLib и в нем сначала компилируем наш файл SayHello.java вот такой командой
javac edu/javacourse/jar/SayHello.java |
После успешной компиляции создаем JAR-файл с помощью команды
jar cf say.jar edu/javacourse/jar/SayHello.class |
Если у вас все получилось, то в каталоге JavaLesson/JarLib должен появится файл say.jar.
Теперь напишем небольшой класс, который будет использовать наш класс SayHello. ВАЖНО !!! Для «чистоты эксперимента» создадим этот класс в каталоге JavaLesson. Предлагаю создать класс без использования пакетов (хотя это не должно быть правилом — в реальных проектах создавать классы без пакетов не надо). Вот наш файл UseHello.java, который будет находится в каталоге JavaLesson
import edu.javacourse.jar.SayHello; public class UseHello { public static void main(String[] args) { SayHello sh = new SayHello(); sh.sayHello(); } } |
Обратите внимание на первую строчку — в ней мы импортируем класс SayHello. В методе main мы создаем объект и вызываем его метод. Структура наших каталогов должна выглядеть вот так:
C\: JavaLesson JarLib edu javacourse jar SayHello.java UseHello.java |
Теперь нам надо скомпилировать наш замечательный класс. Пробуем команду javac. ВНИМАНИЕ !!! Мы находимся в каталоге JavaLesson.
И мы получаем ошибку:
C:\JavaLesson>javac UseHello.java UseHello.java:1: error: package edu.javacourse.jar does not exist import edu.javacourse.jar.SayHello; ^ UseHello.java:6: error: cannot find symbol SayHello sh = new SayHello(); ^ symbol: class SayHello location: class UseHello UseHello.java:6: error: cannot find symbol SayHello sh = new SayHello(); ^ symbol: class SayHello location: class UseHello 3 errors |
Сообщение в данном случае достаточно информативное — «UseHello.java:1: error: package edu.javacourse.jar does not exist» и «UseHello.java:6: error: cannot find symbol». Мы же не подключали наш класс SayHello — вот компилятор и не знает, откуда его брать и вообще откуда такой пакет/класс — edu.javacourse.jar.SayHello. Ну что же — перефразируя классику — «Ваше слово, товарищ CLASSPATH».
Очевидно, что нам надо компилятору подсказать, что он должен использовать не только те JAR-файлы, которые у него уже есть — тот же rt.jar — но и наш JAR-файл. Делается это с помощью специальной опции при запуске компилятора.
javac —cp JarLib/say.jar UseHello.java |
В этой команде мы добавили строку -cp JarLib/say.jar. Часть -cp говорит, что за ней должен идти список JAR-файлов, которые содержат нужные классы. Список может включать несколько файлов, разделенных для Windows знаком «;», для Unix/Linux — «:». Например, если мне надо указать два файла — say1.jar и say2.jar — находящихся в каталоге C:/Anton/Libraries, то команда (для Windows) выглядела бы так:
javac —cp C:/Anton/Libraries/say1.jar;C:/Anton/Libraries/say2.jar UseHello.java |
Кстати, «-cp» — сокращенно от classpath — раньше надо было писать именно так, да и сейчас тоже можно.
javac —classpath C:/Anton/Libraries/say1.jar;C:/Anton/Libraries/say2.jar UseHello.java |
Также важно отметить, что в CLASSPATH можно включать не только JAR-файлы — туда можно включать путь до каталога с файлами .class (опять же — их может быть указано несколько штук). Если бы мы не создавали JAR-файл say.jar, а использовали скомпилированный файл SayHello.class из каталога JarLib, то команда выглядела бы вот так:
java —cp JarLib UseHello.java |
Вы можете спросить — почему мы указали путь только до JarLib, а не полностью каталог с файлом SayHello.class. Дело в том, что т.к. наш файл содержится в пакете, то нам надо указать путь именно до пакета, а он находится в каталоге JarLib. Можно указать полный (а не относительный) путь — вот так:
javac —cp C:/JavaLesson/JarLib UseHello.java |
Ну что же, скомпилировать нам удалось, самое время запускать наше замечательный класс. Скорее всего, вы уже догадываетесь, что при запуске нам тоже надо указать наш файл say.jar и выглядеть команда должна как-то так. ВНИМАНИЕ !!! Мы находимся в каталоге JavaLesson.
java —cp JarLib/say.jar UseHello |
Но при запуске этой программы нас постигает неудача. Вот такое сообщение выдает JVM:
Error: Could not find or load main class UseHello |
JVM не может найти наш класс. Как это, вот же он, прямо в этой директории ? Хитрость в том, что когда вы указываете CLASSPATH в командной строке, то JVM берет классы ТОЛЬКО из этих файлов/каталогов. А наш файл с классом UseHello находится в ТЕКУЩЕМ каталоге, который НЕ УКАЗАН. Вот такая вот эпидерсия. Нам надо указать JVM, чтобы она брала файлы и из текущего каталога тоже. Делается это так — в CLASSPATH надо указать символ «.». Это и будет текущий каталог. Наща команда должна выглядеть вот так:
java —cp .;JarLib/say.jar UseHello |
Ну что же — теперь все должно получится и мы увидим надпись HELLO.
Фокус с CLASSPATH может сыграть с вами достаточно злую шутку. Дело в том, что JVM использует переменную среды, которая так и называется «CLASSPATH». Для Windows она устанавливается точно так же как переменные «PATH» и «JAVA_HOME» — мы делали это в разделе Установка JDK. В этой переменной указывается набор JAR-файлов и каталогов, которые JVM будет использовать в случае, если вы НЕ указываете CLASSPATH при запуске своей программы.
Некоторые программы при своей установке создают (или обновляют) переменную среды «CLASSPATH» и могут даже вам ничего не сказать. И вот вы из командной строки запускаете свой класс, а JVM его НЕ ВИДИТ. Потому? что она dpzkf переменную «CLASSPATH» и в ней нет символа «.». В этом случае происходит то, что мы уже видели — файлы из текущего каталога не загружаются. Так что будьте внимательны.
Подключение JAR-библиотек в IDE NetBeans
Т.к. в данном курсе я использую для демонстрации NetBeans, то наверно будет неправильно не показать, как подлкючать JAR в этой среде. Как я уже упоминал, если появится время на другие IDE, я буду писать их в этой же статье. Но не думаю, что это будет в ближащее время.
Если вы посмотрите служебное окно «Projects», которое обычно находится слева, то вы в нем вы можете увидеть структуру вашего проекта, которая содержит раздел «Libraries». Я создал два проекта SayHello и UseHello
В открытом файле UseHello.java в самой первой строке видно, что компилятор выдает в ней ошибку — как мы уже знаем, она говорит об отсутствии нужного класса. В принципе IDE позволяют подключать не только готовые JAR-файлы, но и проекты, но мы не будем использовать эту функцию (в данном случае специально). Чтобы подключить библиотеку из проекта SayHello нам для начала надо собрать этот проект через команду «Build». Результат можем увидеть в каталоге dist. В нем мы можем увидеть файл SayHello.jar. Предвидя вопрос — а можно поменять имя файла — для того, чтобы файл создавался с другим именем, надо исправлять конфигурационный файл nbproject/project.properties. Найти в нем опцию с именем dist.jar И поменять имя файла. В общем не очень удобно. Так что я обычно этого не делаю.
Теперь нам надо подключить готовый JAR-файл к нашему второму проекту UseHello. Сделать это можно несколькими способами.
- Щелкнуть правой кнопкой мышки на пункте «Libraries» в структуре проекта и в нем выбрать пункт «Add JAR/Folder». После выбора файла его можно будет видеть под веткой «Libraries»
- Целкнуть правой кнопкой мышки на проекте UseHello в окне «Projects» и в выпадающем меню выбрать пункт (обычно самый нижний) «Properties». В открывшемся диалоговом окне выбрать слева пункт «Libraries» и в закладке «Compile» использовать кнопку «Add JAR/Folder».
Также предлагаю заглянуть на закладку «Run». В нем можно увидеть, что при запуске будет подключаться те библиотеки, которые подключаются при компиляции исходников («Classpath for Compiling Source»).
На этом можно закруглиться, хотя конечно же процесс познания бесконечен и вам наверняка встретится еще много интересной информации по использованию и созданию jar-файлов.
Исходный код для проектов под NetBeans можно скачать здесь. Библиотеку в них надо подключить самостоятельно. Так что можете потренироваться. Удачи.
И теперь нас ждет следующая статья: Многопоточность — первые шаги.
Загрузить PDF
Загрузить PDF
Из этой статьи вы узнаете, как создать Java-архив, а именно JAR-файл, с помощью бесплатной Java-программы Eclipse. Это можно сделать на компьютере с Windows и с Mac OS X.
-
1
Удостоверьтесь, что у вас установлен комплект разработчика Java-приложений (JDK). Если на компьютере JDK нет, скачайте и установите его.
-
2
Откройте веб-сайт программы Eclipse. Перейдите на страницу https://www.eclipse.org/.
- Если программа Eclipse уже установлена, перейдите в следующий раздел.
-
3
Щелкните по DOWNLOAD (Скачать). Это кнопка в верхней части страницы.
-
4
Щелкните по DOWNLOAD (Скачать). Эта оранжевая кнопка находится в верхней части открывшейся страницы. Начнется загрузка Eclipse на компьютер.
-
5
Дождитесь, когда загрузка будет завершена. На это уйдет некоторое время.
-
6
Запустите установочный файл Eclipse.
- В Windows дважды щелкните по скачанному файлу, а затем нажмите «Да», когда появится запрос.
- В Mac OS X дважды щелкните по скачанному архиву (ZIP-файлу) и дождитесь, когда он распакуется.
-
7
Откройте окно мастера установки Eclipse. Для этого дважды щелкните по фиолетовому значку Eclipse, когда он появится.
- Если вы щелкнули по ссылке «Change Mirror» (Поменять сервер), которая находится под оранжевой кнопкой «DOWNLOAD» (Скачать), возможно, откроется окно самой программы Eclipse. В этом случае перейдите к шагу «Нажмите “Обзор”».
-
8
Нажмите Eclipse IDE for Java Developers (Eclipse IDE для разработчиков Java). Это верхняя опция в окне мастера установки Eclipse.
-
9
Щелкните по Install (Установить). Эта желтая кнопка находится в нижней части окна. Начнется установка Eclipse на компьютер.
- Если хотите, укажите папку, в которую будет установлена программа; для этого щелкните по значку в виде папки справа от опции «Installation Folder» (Папка для установки), а затем выберите конкретную папку на компьютере.
- Если вы не хотите создавать ярлыки для Eclipse, сначала снимите флажки у соответствующих опций, а потом нажмите «Установить».
-
10
Щелкните по Launch (Запустить). Эта зеленая кнопка находится в нижней части окна мастера установки. Откроется программа Eclipse.
-
11
Нажмите Browse (Обзор). Эта опция находится в правой части окна. Откроется окно Проводника (в Windows) или Finder (в Mac OS X).
-
12
Выберите папку рабочей области. Щелкните по нужной папке в левой части экрана. В этой папке будут храниться файлы проектов Eclipse.
-
13
Щелкните по OK. Эта кнопка находится в нижнем правом углу окна.
-
14
Нажмите Launch (Запустить). Вы найдете эту опцию в нижней части окна. Откроется главная страница Eclipse.
Реклама
-
1
Скопируйте нужные файлы в одну папку. Файлы, которые будут помещены в JAR-файл, должны быть в одной папке.
-
2
Щелкните по Файл. Это меню находится в верхнем левом углу окна (Windows) или в верхнем левом углу экрана (Mac OS X). Откроется выпадающее меню.
-
3
Щелкните по Открыть файл. Эта опция находится в верхней части выпадающего меню.
-
4
Откройте папку с файлами. Найдите папку с нужными файлами, а затем дважды щелкните по папке, чтобы открыть ее. На экране отобразится список файлов.
-
5
Выберите все файлы в папке. Щелкните по любому файлу, а затем нажмите Ctrl+A (Windows) или ⌘ Command+A (Mac OS X), чтобы выбрать все файлы в папке.
-
6
Нажмите Открыть. Эта кнопка находится в нижнем правом углу окна. Файлы откроются в Eclipse.
-
7
Щелкните по Файл. Откроется выпадающее меню.
-
8
Щелкните по Экспортировать. Эта опция находится в нижней части выпадающего меню.
-
9
Дважды щелкните по Java. Эта опция находится в верхней части страницы.
-
10
Нажмите JAR-файл. Вы найдете эту опцию под опцией «Java», по которой вы дважды щелкнули.
- Если вы хотите, чтобы JAR-файл запускался как программа, выберите опцию «Исполняемый JAR-файл».
-
11
Щелкните по Далее. Эта кнопка находится в нижней части окна.
-
12
Выберите ресурсы для экспорта. Поставьте флажки у неотмеченных ресурсов, которые вы хотите добавить в свой JAR-файл. Сделайте это в окне в верхней части страницы.
- Пропустите этот шаг, если вы решили создать исполняемый JAR-файл.
-
13
Выберите папку для хранения JAR-файла. Нажмите «Обзор», введите имя файла, щелкните по папке, в которой JAR-файл будет храниться, а затем нажмите «Сохранить».
-
14
Нажмите Завершить. Будет создан JAR-файл (на сжатие файлов уйдет некоторое время).
Реклама
Об этой статье
Эту страницу просматривали 49 940 раз.