Spec-Zone.ru › OpenJDK 27

Класс JarFile

java.lang.Object
java.util.zip.ZipFile
java.util.jar.JarFile
Все реализованные интерфейсы:
Closeable, AutoCloseable
public class JarFile extends ZipFile
Класс JarFile предназначен для чтения содержимого JAR-файла из любого файла, который можно открыть с помощью java.io.RandomAccessFile. Он расширяет класс java.util.zip.ZipFile, добавляя поддержку чтения необязательной записи Manifest и обработки многоверсионных JAR-файлов. Manifest можно использовать для указания метаинформации о JAR-файле и его записях.

Многоверсионный JAR-файл — это JAR-файл, содержащий манифест с главным атрибутом с именем "Multi-Release", набор «базовых» записей, некоторые из которых являются открытыми классами с открытыми или защищёнными методами, составляющими открытый интерфейс JAR-файла, а также набор «версионированных» записей, содержащихся в подкаталогах каталога "META-INF/versions". Версионированные записи распределены по основным версиям платформы Java. Версионированная запись с версией n, 8 < n, в каталоге "META-INF/versions/{n}" переопределяет базовую запись, а также любую запись с номером версии i, где 8 < i < n.

По умолчанию JarFile для многоверсионного JAR-файла настроен на обработку этого файла как обычного (неверсионированного) JAR-файла, поэтому имени записи соответствует не более одной базовой записи. JarFile можно настроить для обработки многоверсионного JAR-файла, создав JarFile с помощью конструктора JarFile(File, boolean, int, Runtime.Version). Объект Runtime.Version задаёт максимальную версию, используемую при поиске версионированных записей. При такой настройке имени записи может соответствовать не более одной базовой записи и ноль или более версионированных записей. Для сопоставления имени записи с последней версионированной записью, версия которой меньше или равна максимальной версии, требуется поиск (см. getEntry(String)).

Загрузчики классов, использующие JarFile для загрузки классов из содержимого записей JarFile, должны создавать JarFile, вызывая конструктор JarFile(File, boolean, int, Runtime.Version) и передавая значение Runtime.version() в качестве последнего аргумента. Это гарантирует загрузку из многоверсионных JAR-файлов классов, совместимых с основной версией работающей JVM.

Если при открытии подписанного JAR-файла установлен флаг verify, содержимое записи JAR проверяется по подписи, встроенной в манифест, связанный с её path name. В многоверсионном JAR-файле содержимое версионированной записи проверяется по собственной подписи, а метод JarEntry.getCodeSigners() возвращает её собственных подписантов.

Обратите внимание, что процесс проверки не включает проверку сертификата подписанта. Вызывающей стороне следует проверить возвращаемое значение JarEntry.getCodeSigners(), чтобы дополнительно определить, заслуживает ли подпись доверия.

Если не указано иное, передача аргумента null конструктору или методу этого класса приводит к выбрасыванию исключения NullPointerException.

Примечание по реализации:
Если API нельзя использовать для настройки JarFile (например, чтобы переопределить конфигурацию скомпилированного приложения или библиотеки), доступны два свойства System.
  • Свойству jdk.util.jar.version можно присвоить значение, представляющее собой String неотрицательного целого числа <= Runtime.version().feature(). Это значение используется для установки эффективной версии среды выполнения, отличной от значения по умолчанию, получаемого при вычислении Runtime.version().feature(). Эффективная версия среды выполнения — это версия, используемая конструктором JarFile(File, boolean, int, Runtime.Version), если значение последнего аргумента равно JarFile.runtimeVersion().
  • Свойству jdk.util.jar.enableMultiRelease можно присвоить одно из трёх значений String: true, false или force. Значение true, используемое по умолчанию, включает обработку многоверсионных JAR-файлов. Значение false отключает такую обработку: атрибут манифеста "Multi-Release" и каталоги версий в многоверсионном JAR-файле, если они есть, игнорируются. Кроме того, метод isMultiRelease() возвращает false. Значение force приводит к инициализации JarFile с версиями среды выполнения после создания объекта. Фактически это эквивалентно следующему коду: (new JarFile(File, boolean, int, JarFile.runtimeVersion()).
С момента:
1.2
См. также:
  • Manifest
  • ZipFile
  • JarEntry

Краткое описание полей

Модификатор и тип Поле Описание
static final int CENATT
Смещение поля внутренних атрибутов файла в заголовке центрального каталога (CEN).
static final int CENATX
Смещение поля внешних атрибутов файла в заголовке центрального каталога (CEN).
static final int CENCOM
Смещение поля длины комментария в заголовке центрального каталога (CEN).
static final int CENCRC
Смещение поля значения CRC-32 несжатого файла в заголовке центрального каталога (CEN).
static final int CENDSK
Смещение поля начального номера диска в заголовке центрального каталога (CEN).
static final int CENEXT
Смещение поля длины дополнительных данных в заголовке центрального каталога (CEN).
static final int CENFLG
Смещение поля флагов шифрования и дешифрования в заголовке центрального каталога (CEN).
static final int CENHDR
Размер заголовка центрального каталога (CEN) в байтах (включая сигнатуру).
static final int CENHOW
Смещение поля метода сжатия в заголовке центрального каталога (CEN).
static final int CENLEN
Смещение поля размера несжатого файла в заголовке центрального каталога (CEN).
static final int CENNAM
Смещение поля длины имени файла в заголовке центрального каталога (CEN).
static final int CENOFF
Смещение поля смещения заголовка LOC в заголовке центрального каталога (CEN).
static final long CENSIG
Сигнатура заголовка центрального каталога (CEN).
static final int CENSIZ
Смещение поля размера сжатого файла в заголовке центрального каталога (CEN).
static final int CENTIM
Смещение поля времени изменения в заголовке центрального каталога (CEN).
static final int CENVEM
Смещение поля версии, создавшей заголовок центрального каталога (CEN).
static final int CENVER
Смещение поля версии, необходимой для извлечения данных, в заголовке центрального каталога (CEN).
static final int ENDCOM
Смещение поля длины комментария ZIP-файла в заголовке конца центрального каталога (END).
static final int ENDHDR
Размер заголовка конца центрального каталога (END) в байтах (включая сигнатуру).
static final int ENDOFF
Смещение поля заголовка конца центрального каталога (END), указывающего смещение первого заголовка CEN.
static final long ENDSIG
Сигнатура заголовка конца центрального каталога (END).
static final int ENDSIZ
Смещение поля размера центрального каталога в байтах в заголовке конца центрального каталога (END).
static final int ENDSUB
Смещение поля числа записей на этом диске в заголовке конца центрального каталога (END).
static final int ENDTOT
Смещение поля общего числа записей в заголовке конца центрального каталога (END).
static final int EXTCRC
Смещение поля значения CRC-32 несжатого файла в дополнительном локальном заголовке (EXT).
static final int EXTHDR
Размер дополнительного локального заголовка (EXT) в байтах (включая сигнатуру).
static final int EXTLEN
Смещение поля размера несжатого файла в дополнительном локальном заголовке (EXT).
static final long EXTSIG
Сигнатура дополнительного локального заголовка (EXT).
static final int EXTSIZ
Смещение поля размера сжатого файла в дополнительном локальном заголовке (EXT).
static final int LOCCRC
Смещение поля значения CRC-32 несжатого файла в заголовке локального файла (LOC).
static final int LOCEXT
Смещение поля длины дополнительных данных в заголовке локального файла (LOC).
static final int LOCFLG
Смещение поля флагов общего назначения в заголовке локального файла (LOC).
static final int LOCHDR
Размер заголовка локального файла (LOC) в байтах (включая сигнатуру).
static final int LOCHOW
Смещение поля метода сжатия в заголовке локального файла (LOC).
static final int LOCLEN
Смещение поля размера несжатого файла в заголовке локального файла (LOC).
static final int LOCNAM
Смещение поля длины имени файла в заголовке локального файла (LOC).
static final long LOCSIG
Сигнатура заголовка локального файла (LOC).
static final int LOCSIZ
Смещение поля размера сжатого файла в заголовке локального файла (LOC).
static final int LOCTIM
Смещение поля времени изменения в заголовке локального файла (LOC).
static final int LOCVER
Смещение поля версии, необходимой для извлечения данных, в заголовке локального файла (LOC).
static final String MANIFEST_NAME
Имя файла манифеста JAR.

Поля, объявленные в классе ZipFile

OPEN_DELETE, OPEN_READ
Модификатор и тип Поле Описание
static final int OPEN_DELETE
Флаг режима для открытия ZIP-файла с пометкой на удаление.
static final int OPEN_READ
Флаг режима для открытия ZIP-файла для чтения.

Краткое описание конструкторов

Конструктор Описание
JarFile(File file)
Создаёт новый JarFile для чтения из указанного объекта File.
JarFile(File file, boolean verify)
Создаёт новый JarFile для чтения из указанного объекта File.
JarFile(File file, boolean verify, int mode)
Создаёт новый JarFile для чтения из указанного объекта File в заданном режиме.
JarFile(File file, boolean verify, int mode, Runtime.Version version)
Создаёт новый JarFile для чтения из указанного объекта File в заданном режиме.
JarFile(String name)
Создаёт новый JarFile для чтения из указанного файла name.
JarFile(String name, boolean verify)
Создаёт новый JarFile для чтения из указанного файла name.

Краткое описание методов

Модификатор и тип Метод Описание
static Runtime.Version baseVersion()
Возвращает версию, представляющую конфигурацию многоверсионного JAR-файла без версий.
Enumeration<JarEntry> entries()
Возвращает перечисление записей JAR-файла.
ZipEntry getEntry(String name)
Возвращает ZipEntry для заданного имени базовой записи или null, если запись не найдена.
InputStream getInputStream(ZipEntry ze)
Возвращает входной поток для чтения содержимого указанной записи ZIP-файла.
JarEntry getJarEntry(String name)
Возвращает JarEntry для заданного имени базовой записи или null, если запись не найдена.
Manifest getManifest()
Возвращает манифест JAR-файла или null, если манифеста нет.
final Runtime.Version getVersion()
Возвращает максимальную версию, используемую при поиске версионированных записей.
final boolean isMultiRelease()
Показывает, является ли этот JAR-файл многоверсионным.
static Runtime.Version runtimeVersion()
Возвращает версию, представляющую эффективную конфигурацию многоверсионного JAR-файла с версиями среды выполнения.
Stream<JarEntry> stream()
Возвращает упорядоченный Stream записей JAR-файла.
Stream<JarEntry> versionedStream()
Возвращает Stream версионированных записей JAR-файла.

Методы, объявленные в классе ZipFile

close, getComment, getName, size, toString
Модификатор и тип Метод Описание
void close()
Закрывает ZIP-файл.
String getComment()
Возвращает комментарий ZIP-файла.
String getName()
Возвращает имя пути ZIP-файла.
int size()
Возвращает число записей в ZIP-файле.
String toString()
Возвращает строку, идентифицирующую этот ZipFile, для отладки.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс среды выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

Подробное описание полей

MANIFEST_NAME

public static final String MANIFEST_NAME
Имя файла манифеста JAR.
См. также:
  • Значения константных полей

LOCSIG

static final long LOCSIG
Сигнатура заголовка локального файла (LOC).
См. также:
  • Значения константных полей

EXTSIG

static final long EXTSIG
Сигнатура заголовка дополнительных данных локального файла (EXT).
См. также:
  • Значения константных полей

CENSIG

static final long CENSIG
Сигнатура заголовка центрального каталога (CEN).
См. также:
  • Значения константных полей

ENDSIG

static final long ENDSIG
Сигнатура заголовка конца центрального каталога (END).
См. также:
  • Значения константных полей

LOCHDR

static final int LOCHDR
Размер заголовка локального файла (LOC) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

EXTHDR

static final int EXTHDR
Размер заголовка дополнительных данных локального файла (EXT) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

CENHDR

static final int CENHDR
Размер заголовка центрального каталога (CEN) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

ENDHDR

static final int ENDHDR
Размер заголовка конца центрального каталога (END) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

LOCVER

static final int LOCVER
Смещение поля версии, необходимой для извлечения данных, в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCFLG

static final int LOCFLG
Смещение поля флагов общего назначения в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCHOW

static final int LOCHOW
Смещение поля метода сжатия в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCTIM

static final int LOCTIM
Смещение поля времени изменения в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCCRC

static final int LOCCRC
Смещение поля значения crc-32 несжатого файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCSIZ

static final int LOCSIZ
Смещение поля сжатого размера в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCLEN

static final int LOCLEN
Смещение поля несжатого размера в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCNAM

static final int LOCNAM
Смещение поля длины имени файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCEXT

static final int LOCEXT
Смещение поля длины дополнительных данных в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

EXTCRC

static final int EXTCRC
Смещение поля значения crc-32 несжатого файла в заголовке дополнительных данных локального файла (EXT).
См. также:
  • Значения константных полей

EXTSIZ

static final int EXTSIZ
Смещение поля сжатого размера в заголовке дополнительных данных локального файла (EXT).
См. также:
  • Значения константных полей

EXTLEN

static final int EXTLEN
Смещение поля несжатого размера в заголовке дополнительных данных локального файла (EXT).
См. также:
  • Значения константных полей

CENVEM

static final int CENVEM
Смещение поля версии программы-создателя в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENVER

static final int CENVER
Смещение поля версии, необходимой для извлечения данных, в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENFLG

static final int CENFLG
Смещение поля флагов шифрования и расшифрования в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENHOW

static final int CENHOW
Смещение поля метода сжатия в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENTIM

static final int CENTIM
Смещение поля времени изменения в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENCRC

static final int CENCRC
Смещение поля значения crc-32 несжатого файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENSIZ

static final int CENSIZ
Смещение поля сжатого размера в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENLEN

static final int CENLEN
Смещение поля несжатого размера в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENNAM

static final int CENNAM
Смещение поля длины имени файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENEXT

static final int CENEXT
Смещение поля длины дополнительных данных в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENCOM

static final int CENCOM
Смещение поля длины комментария в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENDSK

static final int CENDSK
Смещение поля номера диска, с которого начинается запись, в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENATT

static final int CENATT
Смещение поля внутренних атрибутов файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENATX

static final int CENATX
Смещение поля внешних атрибутов файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENOFF

static final int CENOFF
Смещение поля смещения заголовка LOC в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

ENDSUB

static final int ENDSUB
Смещение поля числа записей на этом диске в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDTOT

static final int ENDTOT
Смещение поля общего числа записей в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDSIZ

static final int ENDSIZ
Смещение поля размера центрального каталога в байтах в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDOFF

static final int ENDOFF
Смещение поля смещения первого заголовка CEN в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDCOM

static final int ENDCOM
Смещение поля длины комментария ZIP-файла в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

Подробное описание конструкторов

JarFile

public JarFile(String name) throws IOException
Создаёт новый JarFile для чтения из указанного файла name. Если JarFile подписан, его подпись будет проверена.
Параметры:
name — имя JAR-файла, который нужно открыть для чтения
Исключения:
IOException — если произошла ошибка ввода-вывода

JarFile

public JarFile(String name, boolean verify) throws IOException
Создаёт новый JarFile для чтения из указанного файла name.
Параметры:
name — имя JAR-файла, который нужно открыть для чтения
verify — следует ли проверять подпись JAR-файла, если он подписан.
Исключения:
IOException — если произошла ошибка ввода-вывода

JarFile

public JarFile(File file) throws IOException
Создаёт новый JarFile для чтения из указанного объекта File. Если JarFile подписан, его подпись будет проверена.
Параметры:
file — JAR-файл, который нужно открыть для чтения
Исключения:
IOException — если произошла ошибка ввода-вывода

JarFile

public JarFile(File file, boolean verify) throws IOException
Создаёт новый JarFile для чтения из указанного объекта File.
Параметры:
file — JAR-файл, который нужно открыть для чтения
verify — следует ли проверять подпись JAR-файла, если он подписан.
Исключения:
IOException — если произошла ошибка ввода-вывода

JarFile

public JarFile(File file, boolean verify, int mode) throws IOException
Создаёт новый JarFile для чтения из указанного объекта File в заданном режиме. Аргумент режима должен иметь значение OPEN_READ или OPEN_READ | OPEN_DELETE.
Параметры:
file — JAR-файл, который нужно открыть для чтения
verify — следует ли проверять подпись JAR-файла, если он подписан.
mode — режим, в котором следует открыть файл
Исключения:
IOException — если произошла ошибка ввода-вывода
IllegalArgumentException — если аргумент mode недопустим
С версии:
1.3

JarFile

public JarFile(File file, boolean verify, int mode, Runtime.Version version) throws IOException
Создаёт новый JarFile для чтения из указанного объекта File в заданном режиме. Аргумент режима должен иметь значение OPEN_READ или OPEN_READ | OPEN_DELETE. Аргумент версии после преобразования в каноническую форму используется для настройки JarFile при обработке многоверсионных JAR-файлов.

Каноническая форма, полученная из параметра версии, — Runtime.Version.parse(Integer.toString(n)), где n — Math.max(version.feature(), JarFile.baseVersion().feature()).

Параметры:
file — JAR-файл, который нужно открыть для чтения
verify — следует ли проверять подпись JAR-файла, если он подписан.
mode — режим, в котором следует открыть файл
version — указывает версию выпуска для многоверсионного JAR-файла
Исключения:
IOException — если произошла ошибка ввода-вывода
IllegalArgumentException — если аргумент mode недопустим
NullPointerException — если version имеет значение null
С версии:
9

Подробное описание методов

baseVersion

public static Runtime.Version baseVersion()
Возвращает версию, соответствующую конфигурации многоверсионного JAR-файла без указания версии.
Возвращает:
версию, соответствующую конфигурации без указания версии
С версии:
9

runtimeVersion

public static Runtime.Version runtimeVersion()
Возвращает версию, соответствующую эффективной конфигурации многоверсионного JAR-файла с учётом версии среды выполнения.

По умолчанию номер версии функции возвращённого Version будет совпадать с номером версии функции Runtime.version(). Однако, если задано свойство jdk.util.jar.version, возвращённый Version определяется этим свойством, поэтому номера версий функций могут не совпадать.

Возвращает:
версию, соответствующую конфигурации с учётом версии среды выполнения
С версии:
9

getVersion

public final Runtime.Version getVersion()
Возвращает максимальную версию, используемую при поиске записей с указанием версии.

Если этот JarFile не является многоверсионным JAR-файлом или не настроен для обработки в таком режиме, возвращаемая версия будет совпадать с версией, возвращаемой методом baseVersion().

Возвращает:
максимальную версию
С версии:
9

isMultiRelease

public final boolean isMultiRelease()
Указывает, является ли этот JAR-файл многоверсионным.
Возвращает:
true, если этот JarFile является многоверсионным JAR-файлом
С версии:
9

getManifest

public Manifest getManifest() throws IOException
Возвращает манифест JAR-файла или null, если он отсутствует.
Возвращает:
манифест JAR-файла или null, если он отсутствует
Исключения:
IllegalStateException — может быть выброшено, если JAR-файл закрыт
IOException — если произошла ошибка ввода-вывода

getJarEntry

public JarEntry getJarEntry(String name)
Возвращает JarEntry для заданного имени базовой записи или null, если запись не найдена.

Если этот JarFile является многоверсионным JAR-файлом и настроен для обработки в таком режиме, выполняется поиск и возвращается JarEntry, представляющая последнюю версию записи, связанной с заданным именем. Возвращённая JarEntry — это запись с указанием версии, соответствующая заданному имени базовой записи с префиксом "META-INF/versions/{n}/", для наибольшего значения n, для которого существует запись. Если такой записи с указанием версии нет, возвращается JarEntry базовой записи; если записи не найдены, возвращается null. Начальным значением версии n является максимальная версия, возвращаемая методом getVersion().

Требования к реализации:
Эта реализация вызывает getEntry(String).
Параметры:
name — имя записи в JAR-файле
Возвращает:
JarEntry для заданного имени записи или записи с указанием версии либо null, если запись не найдена
Исключения:
IllegalStateException — может быть выброшено, если JAR-файл закрыт
См. также:
  • JarEntry

getEntry

public ZipEntry getEntry(String name)
Возвращает ZipEntry для заданного имени базовой записи или null, если запись не найдена.

Если этот JarFile является многоверсионным JAR-файлом и настроен для обработки в таком режиме, выполняется поиск и возвращается ZipEntry, представляющая последнюю версию записи, связанной с заданным именем. Возвращённая ZipEntry — это запись с указанием версии, соответствующая заданному имени базовой записи с префиксом "META-INF/versions/{n}/", для наибольшего значения n, для которого существует запись. Если такой записи с указанием версии нет, возвращается ZipEntry базовой записи; если записи не найдены, возвращается null. Начальным значением версии n является максимальная версия, возвращаемая методом getVersion().

Переопределяет:
getEntry в классе ZipFile
Требования к реализации:
Эта реализация может вернуть запись с указанием версии для запрошенного имени, даже если соответствующей базовой записи нет. Это возможно, если найдена соответствующая запись с указанием версии, доступная только внутри класса или пакета. При переопределении этого метода убедитесь, что переопределённый метод вызывает super.getEntry(name) для получения всех записей с указанием версии.
Параметры:
name — имя записи в JAR-файле
Возвращает:
ZipEntry для заданного имени записи или имя записи с указанием версии либо null, если запись не найдена
Исключения:
IllegalStateException — может быть выброшено, если JAR-файл закрыт
См. также:
  • ZipEntry

entries

public Enumeration<JarEntry> entries()
Возвращает перечисление записей JAR-файла.
Переопределяет:
entries в классе ZipFile
Возвращает:
перечисление записей JAR-файла
Исключения:
IllegalStateException — может быть выброшено, если JAR-файл закрыт

stream

public Stream<JarEntry> stream()
Возвращает упорядоченный Stream записей JAR-файла. Записи представлены в Stream в том порядке, в котором они расположены в центральном каталоге JAR-файла.
Переопределяет:
stream в классе ZipFile
Возвращает:
упорядоченный Stream записей этого JAR-файла
Исключения:
IllegalStateException — если JAR-файл закрыт
С версии:
1.8

versionedStream

public Stream<JarEntry> versionedStream()
Возвращает Stream записей версионированного JAR-файла.

Если этот JarFile является JAR-файлом с несколькими версиями и настроен для соответствующей обработки, то запись в потоке представляет собой последнюю версионированную запись, связанную с соответствующим именем базовой записи. Максимальная версия последней версионированной записи — это версия, возвращаемая методом getVersion(). Возвращаемый поток может содержать запись, существующую только как версионированная запись. Если JAR-файл не является JAR-файлом с несколькими версиями или JarFile не настроен для обработки JAR-файла с несколькими версиями, этот метод возвращает тот же поток, что и stream().

Возвращает:
поток версионированных записей
Начиная с версии:
10

getInputStream

public InputStream getInputStream(ZipEntry ze) throws IOException
Возвращает входной поток для чтения содержимого указанной записи ZIP-файла.
Переопределяет:
getInputStream в классе ZipFile
Примечание API:
Объект InputStream, возвращаемый этим методом, может оборачивать InflaterInputStream, метод read(byte[], int, int) которого может изменять любой элемент выходного буфера.
Параметры:
ze — запись ZIP-файла
Возвращает:
входной поток для чтения содержимого указанной записи ZIP-файла или null, если запись ZIP-файла отсутствует в JAR-файле
Вызывает исключения:
ZipException — если произошла ошибка формата ZIP-файла
IOException — если произошла ошибка ввода-вывода
SecurityException — если какая-либо из записей JAR-файла имеет некорректную подпись.
IllegalStateException — может быть вызвано, если JAR-файл был закрыт

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API