В обоих случаях (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
Не запускается файл Java (.jar) в Windows | Как запустить .jar? | Решение проблемы
Как видите, в качестве аргумента мы передали полное имя класса, который собираемся запускать. 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» ) ;
Структура наших каталогов должна выглядеть вот так:
JavaLesson
javacourse
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
Java. 02. Компиляция, запуск и создание JAR на примере простой программы
import edu . javacourse . jar . SayHello ;
public class UseHello
public static void main ( String [ ] args ) <
SayHello sh = new SayHello ( ) ;
sh . sayHello ( ) ;
Обратите внимание на первую строчку — в ней мы импортируем класс SayHello. В методе main мы создаем объект и вызываем его метод. Структура наших каталогов должна выглядеть вот так:
JavaLesson
javacourse
SayHello . java
UseHello . java
Теперь нам надо скомпилировать наш замечательный класс. Пробуем команду javac. ВНИМАНИЕ . Мы находимся в каталоге JavaLesson.
javac UseHello . java
И мы получаем ошибку:
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
Сообщение в данном случае достаточно информативное — «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 можно скачать здесь. Библиотеку в них надо подключить самостоятельно. Так что можете потренироваться. Удачи.
И теперь нас ждет следующая статья: Многопоточность — первые шаги.
Источник: java-course.ru
Формат файла JAR — описание, как открыть?
Файл формата JAR открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате JAR
JAR (от англ. Java ARchive) – это ZIP-архив, содержащий программы на языке Java. Формат JAR входит в категорию файловых архивов и активно используются популярными браузерами для хранения дополнений и тем.
JAR-файлы могут быть открыты на платформах Windows, Mac OS X, Linux, Android.
Java-архив был разработан в 1995 году компаниями Sun Microsystems и Oracle. Традиционно, в качестве иконки JAR используется изображение чашки кофе. Некоторые IDE(интегрированная среда разработки) применяют изображение стеклянной банки.
Для мобильных систем
В мобильных системах также используется JAR-файл. Однако он содержит в своей структуре метаданные и является исполняемым.
Специального ПО для запуска такого файла на устройстве не нужно. Мобильные JAR-файлы являются установщиками приложений и запускаются автоматически.
Программы для открытия jar
Расширение может быть открыто JAVA-программами. Также, поскольку JAR-файл является архивом, для его открытия и распаковки подходят любые архиваторы.
- Windows (все версии):
- Oracle Java Runtime Environment
- Eclipse
- 7-Zip
- WinRAR
- IZArc
- WinZIP
- ZipZag
- Java Development Kit
- Linux:
- Eclipse
- Java Runtime Environment
- Mac OS X:
- Apple Jar Launcher
- WinZip Mac
- Java Runtime Environment
- Android:
- File Viewer
Конвертация
JAR-файлы можно конвертировать как онлайн, на специальных сайтах-конвертерах, так и при помощи программ. К наиболее популярному ПО для конвертации относятся:
- JAR/JAD to APK Online Converter:
APK - Eclipse for Linux:
JAD - 7-zip:
ZIP - Java Development Kit:
JAD
Тип файла: Java Archive File Разработчик: Oracle Категория: Исполняемые файлы
Файл Java Archive (JAR), используемый Java Runtime Environment (JRE) — оболочкой, применяемой для выполнения программ Java. Может содержать файлы расширения .CLASS, ресурсы приложения и дополнительный файл декларации (META-INF/MANIFEST.MF). Может служить библиотекой программы или отдельной программой, которая запускается, если на компьютере установлена JRE.
Файлы Java Archive сжимаются при помощи компрессии .ZIP и могут дополнительно подписываться с помощью инструмента jarsigner, входящего в состав Java SDK. Файлы JAR можно создавать при помощи инструмента jar, доступ к ним можно получить при помощи java.util.jar API от Java.
Файлы JAR применяются Mozilla Firefox, Thunderbird, SeaMonkey и Sunbird для хранения тем и дополнения.
Примечание: Sun Microsystems, изначальный разработчик языка Java, была приобретена компанией Oracle. На Java Runtime Environment также ссылаются как нам Java Virtual Machine (JVM).
Чем открыть файл в формате JAR (Java Archive File)
Источник: www.azfiles.ru
Как открыть формат jar
Файлы с расширением jar — это исполняемые файлы, которые написаны на языке java и работают в операционной системе Windows с помощью Java Runtime. Расшифровывается данная аббревиатура как Java Archive File — архивный файл ява. Обычно подобные файлы представляют собой мини-программы для различных мобильных устройств.
Статьи по теме:
- Как открыть формат jar
- Как редактировать java игры
- Как установить программу .jar на телефон
Вам понадобится
- — компьютер;
- — программа JavaTM Archive;
- — интернет;
- — браузер.
Инструкция
Разработчиками языка java создана специальная утилита под названием JavaTM Archive для работы с jar-файлами в обычной операционной системе. Она является частью Java Development Kit. Скачайте программу на сайте разработчика. Установите программу, кликнув дважды по установочному файлу. Найти можно на специальном сайте по ссылке http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-arc. .
Запустите интерпретатор java и введите команду java -jar jar-file, где вместо file укажите имя файла, который нужно открыть. Данная команда работает в JRE версии не ниже 1.2. Более подробные инструкции читайте в помощи по языку java. Также стоит отметить, что для корректной работы данного программного обеспечения на некоторых компьютерах нужно отключать антивирусное программное обеспечение.
Вы можете попытаться запустить jar как мини-программу для браузера — так называемый апплет. Для этого нужно создать html-страницу, внутри которой с помощью тега applet указать имя к файлу jar. Не скачивайте данную программу с других сайтов, так как в последнее время под таким видом скрываются различные вирусы, которые полностью копируют важную информацию с компьютера, крадут пароли, рушат всю операционную систему.
Вы можете открыть формат jar как обычный архив, используя приложение Winrar. Выберите файл и нажмите кнопку «Распаковать». Разархивированные файлы доступны для редактирования, например, в обычном «Блокноте». Данное программное обеспечение по умолчанию установлено вместе с операционной системой на компьютере.
Можно преобразовать jar в файл с более привычным расширением exe, используя утилиту JAR2EXE Converter. Программа очень проста в использовании: вам всего лишь нужно будет указать путь к jar-файлу и место для хранения преобразованного файла. Выбор зависит только от вас. Можете использовать оба варианта, чтобы в совершенстве обладать навыками работы с форматами jar.
Источник: www.kakprosto.ru