Как сделать файл с расширением джава

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Компилятор Java (javac) преобразует код, написанный на языке программирования Java в промежуточную форму – байт-код . Программа, состоящая из байт-кода, запускается специальной программой JVM (Java Virtual Machine – Виртуальная машина Java). Перед тем как выполнить программу, JVM компилирует байт-код в машинный код. Машинный код – это некая последовательность команд (набор кодов операций), которые понимает и умеет исполнять компьютер.

В других языках, например, C++, этап компиляции в байт-код отсутствует: компилятор сразу преобразует текст программы (код) в машинный код и создает бинарный файл для исполнения (в Windows – это файл с расширением exe). Основным недостатком данного подхода является зависимость от операционной системы и процессора: для каждой операционной системы и процессора необходимо скомпилировать свою версию машинного кода.

Эта отличительная особенность позволяет программам, написанным на языке Java, запускаться на различных устройствах (компьютеры, мобильные телефоны, банкоматы и т.п.), т.е. на всех устройствах, в которые можно встроить виртуальную машину Java (JVM) (для каждой целевой платформы она своя) и именуется мультиплатформенностью . Несмотря на дополнительный этап компиляции программы в байт-код и последующий запуск JVM, программы на языке Java компилируются и запускаются быстро.

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

1) создать файл с расширением java, содержащий текст программы;

2) скомпилировать его с помощью компилятора javac. Компилятор проверит код на ошибки и, если он корректен, выдаст файл с расширением class;

3) полученный файл, содержащий байт-код, запустить с помощью виртуальной машины Java.

Компилятор javac в Windows

8) Переходим в командную строку и вводим "javac" или "java".

Компиляция программы и её запуск на исполнение

Скомпилируем нашу первую программу и запустим её.

Создадим файл Cat.java (Помните же, что имя класса должно соответствовать имени файла?) и поместим в этот файл следующий код:

public class Cat public static void main(String[] args) System.out.println("Привет, я кот! Твой друг ;)");
>
>

Иногда могут возникать сложности при создании файла с расширением java: используя стандартный текстовый блокнот в Windows, новички просто изменяют имя файла, и в итоге вместо файла Cat.java создается файл Cat.java.txt. Для создания файла именно с расширением java, можно воспользоваться каким-нибудь текстовым редактором, например, Notepad++. Будьте внимательны!

В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение class. Его содержимое можно открыть также текстовым редактором, например, Notepad++.

Чтобы выполнить программу, следует воспользоваться загрузчиком приложений java. При запуске необходимо указать имя класса, который нужно выполнить. Загрузчик приложений java автоматически будет искать файл с указанным именем и расширением class. И если он найдет такой файл, то выполнит код, содержащийся в указанном классе.

Error: Could not find or load main class Cat
Caused by: java.lang.ClassNotFoundException: Cat

В следующем уроке мы установим интегрированную среду разработки, создадим первый проект и запустим нашу программу.

Обычно удобно объединять множество файлов классов Java в один архивный файл.

В этом уроке мы рассмотрим все тонкости работы с jar – или J ava AR chive – файлами на Java.

В частности, мы возьмем простое приложение и рассмотрим различные способы его упаковки и запуска в виде jar. Мы также ответим на некоторые любопытные вопросы, такие как как легко прочитать файл манифеста jar по пути.

2. Настройка программы Java

Прежде чем мы сможем создать запускаемый jar-файл, наше приложение должно иметь класс с основным методом . Этот класс обеспечивает нашу точку входа в приложение:

3. Команда Jar

Теперь, когда мы все настроили, давайте скомпилируем наш код и создадим наш jar-файл.

Мы можем сделать это с помощью javac из командной строки:

Команда javac создает JarExample.class в каталоге com/baeldung/jar . Теперь мы можем упаковать это в файл jar.

3.1. Использование параметров по умолчанию

Чтобы создать файл jar, мы будем использовать кувшин команда.

Чтобы использовать команду jar для создания файла jar, нам нужно использовать опцию c , чтобы указать, что мы создаем файл, и опцию f , чтобы указать файл:

3.2. Установка основного класса

Полезно, чтобы манифест файла jar включал основной класс.

Манифест-это специальный файл в банке, расположенный в каталоге META-INF и названный MANIFEST.MF . Файл манифеста содержит специальную метаинформацию о файлах в файле jar.

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

Используя опцию e , мы можем указать нашу точку входа, и команда jar добавит ее в сгенерированный файл манифеста.

Давайте запустим jar с указанной точкой входа:

3.3. Обновление содержания

Допустим, мы внесли изменения в один из наших классов и перекомпилировали его. Теперь нам нужно обновить наш jar-файл.

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

3.4. Настройка файла манифеста

В некоторых случаях нам может потребоваться больше контроля над тем, что входит в наш файл манифеста. Команда jar предоставляет функциональные возможности для предоставления нашей собственной информации о манифесте.

Давайте добавим частичный файл манифеста с именем example_manifest.txt чтобы ваше приложение установило нашу точку входа:

Информация о манифесте, которую мы предоставляем, будет добавлена к тому, что генерирует команда jar, так что это единственная строка, которая нам нужна в файле.

Важно, чтобы мы заканчивали наш файл манифеста символом |/newline . Без новой строки наш файл манифеста будет молча проигнорирован.

С этой настройкой давайте снова создадим нашу банку, используя нашу информацию о манифесте и опцию m :

3.5. Подробный Вывод

Если нам нужна дополнительная информация из команды jar , мы можем просто добавить опцию v для verbose.

Давайте запустим нашу команду jar с параметром v :

4. Использование Maven

4.1. Конфигурация по Умолчанию

Мы также можем использовать Maven для создания нашей банки. Поскольку Maven предпочитает условность конфигурации, мы можем просто запустить пакет для создания нашего jar-файла.

По умолчанию наш jar-файл будет добавлен в папку target в нашем проекте.

4.2. Указание основного класса

Мы также можем настроить Maven для указания основного класса и создания исполняемого jar-файла .

5. Использование Пружинного Ботинка

5.1. Использование Maven и Defaults

Если мы используем Spring Boot с Maven, мы должны сначала подтвердить, что наш параметр упаковки установлен в jar , а не war в нашем pom.xml файл.

Как только мы узнаем, что это настроено, мы можем запустить пакет цель:

5.2. Установка точки входа

Установка нашего основного класса-это то, где мы находим различия между созданием jar с обычным Java-приложением и fat jar для приложения Spring Boot . В приложении Spring Boot основной класс на самом деле является org.springframework.boot.loader.Ярлаунчер .

Хотя наш пример не является приложением Spring Boot, мы могли бы легко настроить его как консольное приложение Spring Boot .

Наш основной класс должен быть указан как начальный класс:

Мы также можем использовать Gradle для создания Spring Boot fat jar .

6. Запуск банки

Теперь, когда у нас есть файл jar, мы можем его запустить. Мы запускаем jar – файлы с помощью команды java .

6.1. Вывод основного класса

Поскольку мы пошли дальше и убедились, что наш основной класс указан в манифесте, мы можем использовать опцию -jar команды java для запуска нашего приложения без указания основного класса:

6.2. Указание основного класса

Мы также можем указать основной класс, когда мы запускаем наше приложение. Мы можем использовать опцию -cp , чтобы убедиться, что наш jar-файл находится в пути к классу, а затем предоставить ваш основной класс в формате package.className :

Использование разделителей путей вместо формата пакета также работает:

6.3. Перечисление содержимого банки

Мы можем использовать команду jar для перечисления содержимого нашего файла jar:

6.4. Просмотр файла манифеста

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

Давайте воспользуемся командой unzip с параметром-p:

7. Заключение

В этом уроке мы настроим простое Java-приложение с классом main .

Затем мы рассмотрели три способа создания jar-файлов: с помощью команды jar , с помощью Maven и с помощью приложения Maven Spring Boot.

После того, как мы создали наши jar-файлы, мы вернулись в командную строку и запустили их с выведенным и заданным основным классом.

Мы также узнали, как отображать содержимое файла и как отображать содержимое одного файла в банке.

9 сентября 2013 Мария (admin)

В этом уроке мы создадим нашу первую программу на языке Java.
Создание приложения на языке Java состоит из трех следующих шагов:

Создание исходного файла

После написания этого кода, файл нужно сохранить под именем HelloWorld.java.
Для этого в вашем текстовом редакторе нужно выбрать пункт меню Файл-> Сохранить как… Если вы пользуетесь стандартным Блокнотом Windows, то для того, чтобы сохранить файл с расширением .java необходимо при сохранении выбрать Тип файла: Все файлы и ввести Имя файла: HelloWorld.java (рис 2.1).

lesson2_save

Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)

Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!

Обратите также внимание на кодировку в которой сохраняете файл. Должно быть выбрано ANSI . В Notepad++ кодировку можно установить в меню Кодировки.

Компиляция исходного файла

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

Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.

Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:

и нажимаем Enter.

После того, как директория изменилась, вводим команду компиляции

После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):

lesson2_compil

То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды

Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).

lesson2_dir

Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.

Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.

lesson2_error

Запуск программы

Переходим к последней стадии — запуску программы.

Вводим в командном окне:

Рис 2.5.

Еще раз обратите внимание на чувствительность к регистру в Java. Если вы напишете helloworld вместо HelloWorld, то программа запущена не будет, потому что Java попросту не найдет файл с таким именем.

Конечно, для написания, компилирования и запуска программ на языке Java существуют более удобный инструмент, нежели Блокнот и командная строка . Этот так называемая Интегрированная среда обработки IDE. Об этом мы поговорим в следующем уроке.


Категория: Уроки Java

Комментариев к записи: 95

Скажите, пожалуйста, почему первую программу во всех учебниках (во всяком
случае, в тех, которые я смотрел) называют HelloWorld, разве нельзя назвать её как-то по-другому, далее сохранив файл программы под соответствующим именем?
А если можно, то, думаю, будет лучше, если в тексте урока указать, что программу можно называть, как УГОДНО! (естественно, не в кириллице)

И конечно же, СПАСИБО за уроки!

Здравствуйте, просто так принято, а называть, конечно, можете как хотите

Мария, здравствуйте.
Возник ещё вопрос.
Можно ли класс назвать, например, Goga, а файлу присвоить другое имя, например Djon.java, а затем, когда будем компилировать, указать файл Djon.java, а когда будем запускать программу, указать уже Goga?

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

С уважением, и благодарностью за ВНИМАНИЕ и УРОКИ!

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

Мария, простите, ещё — просьба.

Несколько забегая вперёд, можно ли сказать несколько слов о содержании самой программы, про эти слова: класс, паблик, статик, воид, принтлн?
Ну хоть что-то. )

Несколько слов об этом есть в уроке 5. Более подробно это будет рассматриваться далее в уроках посвященных объектно ориентрованному программированию (они еще не написаны).
Пожалуйста:)

Здравствуйте, выводит ошибку. Придирается к точке между System и out со словами cannot find symbol. Почему так происходит и как это решить?

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

Для создания нового файла в Java чаще всего используется класс java.io.File . Во время инициализации объекта File мы должны предоставить ему имя файла, а затем создать сам файл вызовом метода createNewFile() . Этот метод возвращает булево true , если новый файл создан успешно, и false , если файл уже существует. Этот метод также бросает java.io.IOException , когда он не может создать файл.

Немного теории по созданию файла в Java

Создать файл в Java можно одним из трех способов, передав в объект File :

  • абсолютный путь
  • только указать имя файла
  • указать относительный путь (в этом случае объект файла пытается найти файлы в корневой директории проекта)

При создании пути к файлу мы должны использовать свойство системы File.separator , чтобы сделать нашу программу платформонезависимой.

Давайте рассмотрим различные способы создания файла в простой Java программе:

Читайте также: