Spec-Zone.ru › OpenJDK 27

Класс JarURLConnection

java.lang.Object
java.net.URLConnection
java.net.JarURLConnection
public abstract class JarURLConnection extends URLConnection
Подключение URL к файлу архива Java (JAR) или к записи в файле JAR.

Синтаксис URL JAR:

jar:<url>!/{entry}

например:

jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class

URL JAR следует использовать для обращения к файлу JAR или к записям в файле JAR. Приведенный выше пример — URL JAR, ссылающийся на запись JAR. Если имя записи опущено, URL ссылается на весь файл JAR: jar:http://www.foo.com/bar/baz.jar!/

Если пользователям известно, что созданный ими URL является URL JAR, и им требуются специальные функции для работы с JAR, следует привести объект общего типа URLConnection к типу JarURLConnection. Например:

URL url = new URL("jar:file:/home/duke/duke.jar!/");
JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
Manifest manifest = jarConnection.getManifest();

Экземпляры JarURLConnection можно использовать только для чтения файлов JAR. Этот класс не позволяет получить OutputStream для изменения или записи в базовый файл JAR.

Примеры:

Запись JAR
jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
Файл JAR
jar:http://www.foo.com/bar/baz.jar!/
Каталог JAR
jar:http://www.foo.com/bar/baz.jar!/COM/foo/

!/ называется разделителем.

При создании URL JAR с помощью new URL(context, spec) применяются следующие правила:

  • если URL-контекст отсутствует, а спецификация, переданная конструктору URL, не содержит разделителя, URL считается ссылкой на JarFile.
  • если URL-контекст задан, предполагается, что он ссылается на файл JAR или каталог JAR.
  • если спецификация начинается с «/», каталог JAR игнорируется, а спецификация считается расположенной в корне файла JAR.

    Примеры:

    контекст: jar:http://www.foo.com/bar/jar.jar!/, спецификация:baz/entry.txt
    URL:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
    контекст: jar:http://www.foo.com/bar/jar.jar!/baz, спецификация:entry.txt
    URL:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
    контекст: jar:http://www.foo.com/bar/jar.jar!/baz, спецификация:/entry.txt
    URL:jar:http://www.foo.com/bar/jar.jar!/entry.txt
Начиная с:
1.2
См. также:
  • URL
  • URLConnection
  • JarFile
  • JarInputStream
  • Manifest
  • ZipEntry

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

Модификатор и тип Поле Описание
protected URLConnection jarFileURLConnection
Подключение к URL файла JAR, если подключение было инициировано.

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

allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
Модификатор и тип Поле Описание
protected boolean allowUserInteraction
Если true, этот URL рассматривается в контексте, в котором допустимо взаимодействие с пользователем, например отображение диалогового окна аутентификации.
protected boolean connected
Если false, этот объект подключения еще не создал канал связи с указанным URL.
protected boolean doInput
Эта переменная устанавливается методом setDoInput.
protected boolean doOutput
Эта переменная устанавливается методом setDoOutput.
protected long ifModifiedSince
Некоторые протоколы поддерживают пропуск загрузки объекта, если объект не изменялся после определенного момента времени.
protected URL url
URL представляет удаленный объект во Всемирной паутине, к которому устанавливается это подключение.
protected boolean useCaches
Если true, протоколу разрешено использовать кэширование при любой возможности.

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

JarURLConnection(URL url)
Модификатор Конструктор Описание
protected
Создает новое подключение JarURLConnection для указанного URL.

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

Модификатор и тип Метод Описание
Attributes getAttributes()
Возвращает объект Attributes для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null.
Certificate[] getCertificates()
Возвращает объекты Certificate для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null.
String getEntryName()
Возвращает имя записи для этого подключения.
JarEntry getJarEntry()
Возвращает объект записи JAR для этого подключения, если он есть.
abstract JarFile getJarFile()
Возвращает файл JAR для этого подключения.
URL getJarFileURL()
Возвращает URL файла JAR для этого подключения.
Attributes getMainAttributes()
Возвращает основные атрибуты файла JAR для этого подключения.
Manifest getManifest()
Возвращает манифест для этого подключения или null, если его нет.

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

addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getPermission, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
Модификатор и тип Метод Описание
void addRequestProperty(String key, String value)
Добавляет общее свойство запроса, заданное парой «ключ-значение».
abstract void connect()
Открывает канал связи с ресурсом, на который ссылается этот URL, если такое подключение еще не установлено.
boolean getAllowUserInteraction()
Возвращает значение поля allowUserInteraction этого объекта.
int getConnectTimeout()
Возвращает заданное время ожидания подключения.
Object getContent()
Получает содержимое этого подключения URL.
Object getContent(Class<?>[] classes)
Получает содержимое этого подключения URL.
String getContentEncoding()
Возвращает значение поля заголовка content-encoding.
int getContentLength()
Возвращает значение поля заголовка content-length.
long getContentLengthLong()
Возвращает значение поля заголовка content-length в виде числа типа long.
String getContentType()
Возвращает значение поля заголовка content-type.
long getDate()
Возвращает значение поля заголовка date.
static boolean getDefaultAllowUserInteraction()
Возвращает значение поля allowUserInteraction по умолчанию.
static String getDefaultRequestProperty(String key)
Устарело.
Следует использовать метод getRequestProperty конкретного экземпляра после получения соответствующего экземпляра URLConnection.
boolean getDefaultUseCaches()
Возвращает значение флага useCaches для URLConnection по умолчанию.
static boolean getDefaultUseCaches(String protocol)
Возвращает значение флага useCaches по умолчанию для указанного протокола.
boolean getDoInput()
Возвращает значение флага doInput этого URLConnection.
boolean getDoOutput()
Возвращает значение флага doOutput этого URLConnection.
long getExpiration()
Возвращает значение поля заголовка expires.
static FileNameMap getFileNameMap()
Загружает таблицу имен файлов (таблицу MIME-типов) из файла данных.
String getHeaderField(int n)
Возвращает значение поля заголовка с индексом n.
String getHeaderField(String name)
Возвращает значение поля заголовка с указанным именем.
long getHeaderFieldDate(String name, long defaultValue)
Возвращает значение поля с указанным именем, преобразованное в дату.
int getHeaderFieldInt(String name, int defaultValue)
Возвращает значение поля с указанным именем, преобразованное в число.
String getHeaderFieldKey(int n)
Возвращает ключ поля заголовка с индексом n.
long getHeaderFieldLong(String name, long defaultValue)
Возвращает значение поля с указанным именем, преобразованное в число.
Map<String, List<String>> getHeaderFields()
Возвращает неизменяемую карту полей заголовка.
long getIfModifiedSince()
Возвращает значение поля ifModifiedSince этого объекта.
InputStream getInputStream()
Возвращает входной поток для чтения данных из этого открытого подключения.
long getLastModified()
Возвращает значение поля заголовка last-modified.
OutputStream getOutputStream()
Возвращает выходной поток для записи данных в это подключение.
Permission getPermission()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Разрешения больше нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
int getReadTimeout()
Возвращает заданное время ожидания чтения. Значение 0 означает, что параметр отключен (то есть время ожидания не ограничено).
Map<String, List<String>> getRequestProperties()
Возвращает неизменяемую карту общих свойств запроса для этого подключения.
String getRequestProperty(String key)
Возвращает значение общего свойства запроса с указанным именем для этого подключения.
URL getURL()
Возвращает значение поля URL этого URLConnection.
boolean getUseCaches()
Возвращает значение поля useCaches этого URLConnection.
static String guessContentTypeFromName(String fname)
Пытается определить тип содержимого объекта на основе компонента URL, задающего имя файла.
static String guessContentTypeFromStream(InputStream is)
Пытается определить тип входного потока по символам в его начале.
void setAllowUserInteraction(boolean allowuserinteraction)
Устанавливает значение поля allowUserInteraction этого URLConnection.
void setConnectTimeout(int timeout)
Задает время ожидания в миллисекундах, которое будет использоваться при открытии канала связи с ресурсом, на который ссылается этот URLConnection.
static void setContentHandlerFactory(ContentHandlerFactory fac)
Устанавливает ContentHandlerFactory приложения.
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
Задает указанное значение по умолчанию для поля allowUserInteraction всех будущих объектов URLConnection.
static void setDefaultRequestProperty(String key, String value)
Устарело.
Следует использовать метод setRequestProperty конкретного экземпляра после получения соответствующего экземпляра URLConnection.
void setDefaultUseCaches(boolean defaultusecaches)
Задает указанное значение по умолчанию для поля useCaches.
static void setDefaultUseCaches(String protocol, boolean defaultVal)
Задает указанное значение по умолчанию для поля useCaches именованного протокола.
void setDoInput(boolean doinput)
Устанавливает указанное значение поля doInput этого URLConnection.
void setDoOutput(boolean dooutput)
Устанавливает указанное значение поля doOutput этого URLConnection.
static void setFileNameMap(FileNameMap map)
Задает FileNameMap.
void setIfModifiedSince(long ifmodifiedsince)
Устанавливает указанное значение поля ifModifiedSince этого URLConnection.
void setReadTimeout(int timeout)
Задает время ожидания чтения в миллисекундах.
void setRequestProperty(String key, String value)
Устанавливает общее свойство запроса.
void setUseCaches(boolean usecaches)
Устанавливает указанное значение поля useCaches этого URLConnection.
String toString()
Возвращает представление этого подключения URL в виде String.

Методы, объявленные в классе 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, либо до истечения заданного интервала реального времени.

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

jarFileURLConnection

protected URLConnection jarFileURLConnection
Подключение к URL файла JAR, если подключение было инициировано. Это поле должно устанавливаться методом connect.

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

JarURLConnection

protected JarURLConnection(URL url) throws MalformedURLException
Создает новое подключение JarURLConnection для указанного URL.
Параметры:
url — URL
Исключения:
MalformedURLException — если в строке спецификации не найден допустимый протокол или строку не удалось разобрать.

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

getJarFileURL

public URL getJarFileURL()
Возвращает URL файла JAR для этого подключения.
Возвращает:
URL файла JAR для этого подключения.

getEntryName

public String getEntryName()
Возвращает имя записи для этого подключения. Этот метод возвращает null, если соответствующий этому подключению URL файла JAR указывает на файл JAR, а не на запись файла JAR.
Возвращает:
имя записи для этого подключения, если оно есть.

getJarFile

public abstract JarFile getJarFile() throws IOException
Возвращает файл JAR для этого подключения.
Возвращает:
файл JAR для этого подключения. Если подключение ведет к записи файла JAR, возвращается объект файла JAR
Исключения:
IOException — если при попытке подключиться к файлу JAR для этого подключения возникает IOException.
См. также:
  • URLConnection.connect()

getManifest

public Manifest getManifest() throws IOException
Возвращает манифест для этого подключения или null, если его нет.
Возвращает:
объект манифеста, соответствующий объекту файла JAR для этого подключения.
Исключения:
IOException — если при получении файла JAR для этого подключения возникает IOException.
См. также:
  • getJarFile()

getJarEntry

public JarEntry getJarEntry() throws IOException
Возвращает объект записи JAR для этого подключения, если он есть. Этот метод возвращает null, если соответствующий этому подключению URL файла JAR указывает на файл JAR, а не на запись файла JAR.
Возвращает:
объект записи JAR для этого подключения или null, если URL JAR для этого подключения указывает на файл JAR.
Исключения:
IOException — если при получении файла JAR для этого подключения возникает IOException.
См. также:
  • getJarFile()
  • getJarEntry()

getAttributes

public Attributes getAttributes() throws IOException
Возвращает объект Attributes для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null.
Возвращает:
объект Attributes для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null.
Исключения:
IOException — если при получении записи JAR возникает IOException.
См. также:
  • getJarEntry()

getMainAttributes

public Attributes getMainAttributes() throws IOException
Возвращает основные атрибуты файла JAR для этого подключения.
Возвращает:
основные атрибуты файла JAR для этого подключения.
Исключения:
IOException — если при получении манифеста возникает IOException.
См. также:
  • getJarFile()
  • getManifest()

getCertificates

public Certificate[] getCertificates() throws IOException
Возвращает объекты Certificate для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null. Этот метод можно вызвать только после полной проверки подключения: для этого необходимо читать данные из входного потока до его конца. В противном случае этот метод вернет null.

Возвращаемый массив сертификатов содержит все сертификаты подписантов, использованные для проверки этой записи. За каждым сертификатом подписанта следует поддерживающая цепочка сертификатов (которая может быть пустой). Каждый сертификат подписанта и его поддерживающая цепочка сертификатов упорядочены снизу вверх (то есть сначала идет сертификат подписанта, а последним — сертификат центра сертификации (корневой сертификат)).

Примечание API:
Процесс проверки не включает проверку или установление доверия к подписантам кода. Вызывающий код должен выполнить дополнительные проверки, например использовать CertPathValidator для проверки цепочки сертификатов каждого подписанта и определить, следует ли доверять записи, подписанной этими подписантами.
Возвращает:
объекты Certificate для этого подключения, если URL указывает на запись файла JAR; в противном случае возвращает null.
Исключения:
IOException — если при получении записи JAR возникает IOException.
См. также:
  • getJarEntry()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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