Java jar editor windows

JAR-файлы в Windows – как открывать, редактировать и конвертировать

Файл с расширением .JAR представляет собой файл Java Archive, используемый для хранения Java программ и игр в одном файле. Некоторые содержат файлы, которые заставляют их работать как отдельные приложения, а другие содержат библиотеки программ для использования другими программами.

JAR-файлы сжаты в ZIP и часто хранят такие вещи, как файлы CLASS, файлы манифеста и ресурсы приложения, такие как изображения, звуковые клипы и сертификаты безопасности. Так как они могут хранить сотни или даже тысячи файлов в сжатом формате, файлами JAR легко обмениваться и перемещать.

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

Как открыть файлы JAR

Java Runtime Environment (JRE) должен быть установлен для того, чтобы открыть исполняемый JAR-файл, но обратите внимание, что не все JAR-файлы имеют формат исполняемого файла. После установки вы можете просто дважды щелкнуть файл JAR, чтобы открыть его.

Некоторые мобильные устройства имеют встроенную JRE. После установки приложения Java также можно открывать в веб-браузере, например Firefox, Safari, Edge или Internet Explorer (но не в Chrome).

Поскольку JAR-файлы сжимаются с помощью ZIP, любой распаковщик файлов может открыть его, чтобы отобразить содержимое, которое находится внутри. Это включает в себя такие программы, как 7-Zip, PeaZip и jZip.

Другой способ открыть файлы JAR – использовать следующую команду в командной строке, заменив yourfile.jar именем вашего собственного файла JAR:

Ошибки открытия файлов JAR

Из-за настроек безопасности в операционной системе Windows и в некоторых веб-браузерах весьма часто можно увидеть ошибки при попытке доступа к приложениям Java.

Например, «Java Application Blocked» может отображаться при попытке загрузки Java-апплета. Это можно исправить, установив уровень безопасности в апплете панели управления Java.

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

Также убедитесь, что вы используете последнюю версию Java. Если нет, вернитесь к ссылке JRE выше и установите последнюю версию.

Как конвертировать файл JAR

Вы можете декомпилировать файлы CLASS JAR-файла в файлы Java с помощью веб-сайта JavaDecompilers.com. Загрузите туда свой JAR-файл и выберите, какой декомпилятор использовать.

Преобразование приложения Java для использования на платформе Android потребует преобразования файла JAR в APK. Одним из вариантов может быть запуск файла JAR в эмуляторе Android, чтобы программа автоматически создала файл APK. Однако, самый простой способ получить Java-программу на Android – просто скомпилировать APK из исходного исходного кода.

Файлы WAR также являются файлами Java Web Archive, но вы не можете преобразовать файл JAR напрямую в файл WAR, поскольку формат WAR имеет особую структуру, которой нет в JAR. Вместо этого вы можете создать WAR-файл и затем добавить JAR-файл в каталог lib, чтобы классы в JAR-файле были доступны для использования. WizToWar может помочь вам сделать это.

Создать ZIP-файл из JAR-файла так же просто, как переименовать расширение файла из .JAR в .ZIP. Это, на самом деле, не выполняет преобразование файлов, но позволяет программам, использующим ZIP-файлы, таким как 7-Zip или PeaZip, легче открывать файл JAR.

Дополнительная информация о формате JAR

Если вам нужна помощь в упаковке программ в файлы JAR, перейдите по этой ссылке для получения инструкций на веб-сайте Oracle.

Читайте также:  Что значит создать windows

Только один файл манифеста может быть включен в архив JAR, и он должен находиться в расположении META-INF/MANIFEST.MF. Он должен следовать синтаксису имени и значения, разделенных двоеточием, как Manifest-Version:1.0. Этот файл MF может указывать классы, которые должно загружать приложение.

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

Создание JAR-файла на Java из командной строки или IDE

Файл архива Java является инструментом архивирования, который содержит все компоненты исполняемого приложения Java. Все предопределенные библиотеки доступны в этом формате.

Чтобы включить любой из них (кроме rt.jar) в свой проект, вы должны задать путь класса для данного конкретного файла архива. Вы можете создать файл JAR в Java, используя параметры командной строки или с помощью любого IDE.

Создание Jar

Вы можете создать Jar с помощью команды, как показано ниже.

Рассмотрим пример, как создать программу Java с именем Sample.java —

Sample.java

Если скомпилировать эту программу с помощью команды JAVAC, как показано ниже —

Эта команда компилирует данный файл Java и генерирует файл .class (байт-код)

Теперь создайте файл для созданного класса, как —

Это создаст файл для всех классов в текущем каталоге (так как мы использовали * вместо имени) с указанным именем.

Создание при помощи IDE

Вы также можете создавать архивы JAR, используя IDE. Чтобы создать файл с помощью eclipse, следуйте процедуре, приведенной ниже.

  1. Откройте мастер файлов Jar. Мастер Jar File можно использовать для экспорта содержимого проекта в файл JAR. Чтобы вызвать мастер Jar File —
  • В Package Explorer выберите элементы, которые вы хотите экспортировать. Если вы хотите экспортировать все классы и ресурсы в проекте, просто выберите проект.
  • Нажмите на меню Файл и выберите Экспорт.
  • В текстовом поле фильтра первой страницы мастера экспорта введите JAR.
  • Под категорией Java выберите файл JAR.
  • Нажмите на Далее.
  1. Использование мастера Jar File. На странице спецификации файла JAR —
  • Введите имя файла JAR и папку.
  • По умолчанию экспортируются только классы. Чтобы также экспортировать исходный код, установите флажок «Экспорт исходных файлов и ресурсов Java».
  • Нажмите Далее, чтобы изменить параметры упаковки JAR.
  • Нажмите Next, чтобы изменить спецификацию JAR Manifest
  • Нажмите на Готово.

Java jar editor windows

В обоих случаях (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 набрать такую команду:

Как видите, в качестве аргумента мы передали полное имя класса, который собираемся запускать. JVM кроме имени класса принимает достаточно много параметров, которые позволяют конфигурировать те или иные свойства JVM. В этой статье мы разберем очень важный элемент — CLASSPATH — который как раз и используется для подключения JAR-файлов.
Сейчас мы проделаем полный цикл создания JAR-файла и его подключения без использования IDE — я очень трепетно отношусь к умению программиста пользоваться командной строкой. Во-первых, это показывает, что вы действительно понимаете суть, во-вторых — этот навык ну просто очень полезен. Например, в том же Unix/Linux очень большое количество работы гораздо удобнее делать в командной строке, да и некоторые продукты содержат утилиты, запускаемые из командной строки. Так что займемся.
Создадим каталог JavaLesson (в принципе мы его уже создавали в разделе Основные шаги. В этом каталоге создадим стуктуру каталогов JarLib/edu/javacourse/jar. С помощью текстового редактора создадим файл SayHello.java

Читайте также:  Вашей системе необходимо использовать smb2 или более позднюю версию windows 10

Структура наших каталогов должна выглядеть вот так:

Теперь время за командной строкой. Запускаем команду «cmd» (если не помните — смотрим раздел Основные шаги). Переходим в каталог JavaLesson/JarLib и в нем сначала компилируем наш файл SayHello.java вот такой командой

После успешной компиляции создаем JAR-файл с помощью команды

Если у вас все получилось, то в каталоге JavaLesson/JarLib должен появится файл say.jar.
Теперь напишем небольшой класс, который будет использовать наш класс SayHello. ВАЖНО . Для «чистоты эксперимента» создадим этот класс в каталоге JavaLesson. Предлагаю создать класс без использования пакетов (хотя это не должно быть правилом — в реальных проектах создавать классы без пакетов не надо). Вот наш файл UseHello.java, который будет находится в каталоге JavaLesson

Обратите внимание на первую строчку — в ней мы импортируем класс SayHello. В методе main мы создаем объект и вызываем его метод. Структура наших каталогов должна выглядеть вот так:

Теперь нам надо скомпилировать наш замечательный класс. Пробуем команду javac. ВНИМАНИЕ . Мы находимся в каталоге JavaLesson.

И мы получаем ошибку:

Сообщение в данном случае достаточно информативное — «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-файл. Делается это с помощью специальной опции при запуске компилятора.

В этой команде мы добавили строку -cp JarLib/say.jar. Часть -cp говорит, что за ней должен идти список JAR-файлов, которые содержат нужные классы. Список может включать несколько файлов, разделенных для Windows знаком «;», для Unix/Linux — «:». Например, если мне надо указать два файла — say1.jar и say2.jar — находящихся в каталоге C:/Anton/Libraries, то команда (для Windows) выглядела бы так:

Кстати, «-cp» — сокращенно от classpath — раньше надо было писать именно так, да и сейчас тоже можно.

Также важно отметить, что в CLASSPATH можно включать не только JAR-файлы — туда можно включать путь до каталога с файлами .class (опять же — их может быть указано несколько штук). Если бы мы не создавали JAR-файл say.jar, а использовали скомпилированный файл SayHello.class из каталога JarLib, то команда выглядела бы вот так:

Вы можете спросить — почему мы указали путь только до JarLib, а не полностью каталог с файлом SayHello.class. Дело в том, что т.к. наш файл содержится в пакете, то нам надо указать путь именно до пакета, а он находится в каталоге JarLib. Можно указать полный (а не относительный) путь — вот так:

Ну что же, скомпилировать нам удалось, самое время запускать наше замечательный класс. Скорее всего, вы уже догадываетесь, что при запуске нам тоже надо указать наш файл say.jar и выглядеть команда должна как-то так. ВНИМАНИЕ . Мы находимся в каталоге JavaLesson.

Но при запуске этой программы нас постигает неудача. Вот такое сообщение выдает JVM:

JVM не может найти наш класс. Как это, вот же он, прямо в этой директории ? Хитрость в том, что когда вы указываете CLASSPATH в командной строке, то JVM берет классы ТОЛЬКО из этих файлов/каталогов. А наш файл с классом UseHello находится в ТЕКУЩЕМ каталоге, который НЕ УКАЗАН. Вот такая вот эпидерсия. Нам надо указать JVM, чтобы она брала файлы и из текущего каталога тоже. Делается это так — в CLASSPATH надо указать символ «.». Это и будет текущий каталог. Наща команда должна выглядеть вот так:

Читайте также:  Citrix receiver linux debian

Ну что же — теперь все должно получится и мы увидим надпись 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. Сделать это можно несколькими способами.

  1. Щелкнуть правой кнопкой мышки на пункте «Libraries» в структуре проекта и в нем выбрать пункт «Add JAR/Folder». После выбора файла его можно будет видеть под веткой «Libraries»
  2. Целкнуть правой кнопкой мышки на проекте UseHello в окне «Projects» и в выпадающем меню выбрать пункт (обычно самый нижний) «Properties». В открывшемся диалоговом окне выбрать слева пункт «Libraries» и в закладке «Compile» использовать кнопку «Add JAR/Folder».


Также предлагаю заглянуть на закладку «Run». В нем можно увидеть, что при запуске будет подключаться те библиотеки, которые подключаются при компиляции исходников («Classpath for Compiling Source»).

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

Исходный код для проектов под NetBeans можно скачать здесь. Библиотеку в них надо подключить самостоятельно. Так что можете потренироваться. Удачи.

И теперь нас ждет следующая статья: Многопоточность — первые шаги.

Оцените статью