Spec-Zone.ru › OpenJDK 25

Класс JarURLConnection

java.lang.Object
java.net.URLConnection
java.net.JarURLConnection
public abstract class JarURLConnection extends URLConnection
Подключение URL к файлу Java ARchive (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

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

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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/JarURLConnection.html

Spec-Zone.ru

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