Как сделать файл с расширением джава
Компилятор 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).
Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)
Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!
Обратите также внимание на кодировку в которой сохраняете файл. Должно быть выбрано ANSI . В Notepad++ кодировку можно установить в меню Кодировки.
Компиляция исходного файла
Исходный файл с кодом программы создан, теперь перейдем к компиляции. Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.
Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.
Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:
и нажимаем Enter.
После того, как директория изменилась, вводим команду компиляции
После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):
То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды
Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).
Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.
Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.
Запуск программы
Переходим к последней стадии — запуску программы.
Вводим в командном окне:
Еще раз обратите внимание на чувствительность к регистру в 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 программе:
Читайте также: