java.lang.Object
java.net.URLConnection
java.net.JarURLConnection
到 Java ARchive (JAR) 文件或 JAR 文件中条目的 URL 连接。
JAR URL 的语法是:
jar:<url>!/{entry}
例如:
jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
Jar URL 应用于引用 JAR 文件或 JAR 文件中的条目。上面的示例是一个引用 JAR 条目的 JAR URL。如果省略条目名称,则 URL 引用整个 JAR 文件:jar:http://www.foo.com/bar/baz.jar!/
当用户知道他们创建的 URL 是 JAR URL 并且他们需要特定于 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/
!/
被称为 separator。
通过 new URL(context, spec)
构建 JAR url 时,以下规则适用:
- 如果没有上下文 URL 并且传递给 URL 构造方法的规范不包含分隔符,则该 URL 被认为是引用 JarFile。
- 如果存在上下文 URL,则假定上下文 URL 引用 JAR 文件或 Jar 目录。
- 如果规范以“/”开头,则 Jar 目录将被忽略,并且规范被认为位于 Jar 文件的根目录中。
示例:
- 语境:罐子:http://www.foo.com/bar/jar.jar!/, 规格:baz/条目.txt
- 网址:罐子:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- 语境:罐子:http://www.foo.com/bar/jar.jar!/baz, 规格:entry.txt
- 网址:罐子:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- 语境:罐子:http://www.foo.com/bar/jar.jar!/baz, 规格:/条目.txt
- 网址:罐子:http://www.foo.com/bar/jar.jar!/entry.txt
- 自从:
- 1.2
- 参见:
-
字段摘要
字段在类 java.net.URLConnection 中声明的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述如果此连接的 URL 指向 JAR 文件条目,则返回此连接的 Attributes 对象,否则返回 null。如果此连接的 URL 指向 JAR 文件条目,则返回此连接的 Certificate 对象,否则返回 null。返回此连接的条目名称。返回此连接的 JAR 条目对象(如果有)。abstract JarFile
返回此连接的 JAR 文件。返回此连接的 Jar 文件的 URL。返回此连接的 JAR 文件的主要属性。返回此连接的清单,如果没有则返回 null。在类 java.net.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
-
字段详细信息
-
jarFileURLConnection
到 JAR 文件 URL 的连接(如果连接已启动)。这应该由连接设置。
-
-
构造方法详细信息
-
JarURLConnection
为指定的 URL 创建新的 JarURLConnection。- 参数:
url
- 网址- 抛出:
MalformedURLException
- 如果在规范字符串中找不到合法协议或无法解析该字符串。
-
-
方法详情
-
getJarFileURL
返回此连接的 Jar 文件的 URL。- 返回:
- 此连接的 Jar 文件的 URL。
-
getEntryName
返回此连接的条目名称。如果与此连接对应的 JAR 文件 URL 指向 JAR 文件而不是 JAR 文件条目,则此方法返回 null。- 返回:
- 此连接的条目名称(如果有)。
-
getJarFile
返回此连接的 JAR 文件。- 返回:
- 此连接的 JAR 文件。如果连接是到 JAR 文件条目的连接,则返回 JAR 文件对象
- 抛出:
IOException
- 如果在尝试连接到此连接的 JAR 文件时发生 IOException。- 参见:
-
getManifest
返回此连接的清单,如果没有则返回 null。- 返回:
- 与此连接的 JAR 文件对象对应的清单对象。
- 抛出:
IOException
- 如果获取此连接的 JAR 文件导致抛出 IOException。- 参见:
-
getJarEntry
返回此连接的 JAR 条目对象(如果有)。如果与此连接对应的 JAR 文件 URL 指向 JAR 文件而不是 JAR 文件条目,则此方法返回 null。- 返回:
- 此连接的 JAR 条目对象,如果此连接的 JAR URL 指向 JAR 文件,则为 null。
- 抛出:
IOException
- 如果获取此连接的 JAR 文件导致抛出 IOException。- 参见:
-
getAttributes
如果此连接的 URL 指向 JAR 文件条目,则返回此连接的 Attributes 对象,否则返回 null。- 返回:
- 如果它的 URL 指向 JAR 文件条目,则返回此连接的 Attributes 对象,否则返回 null。
- 抛出:
IOException
- 如果获取 JAR 条目导致抛出 IOException。- 参见:
-
getMainAttributes
返回此连接的 JAR 文件的主要属性。- 返回:
- 此连接的 JAR 文件的主要属性。
- 抛出:
IOException
- 如果获取清单导致抛出 IOException。- 参见:
-
getCertificates
如果此连接的 URL 指向 JAR 文件条目,则返回此连接的 Certificate 对象,否则返回 null。只有通过从输入流中读取直到到达流末尾来完全验证连接后,才能调用此方法。否则,此方法将返回null
- 返回:
- 如果此连接的 URL 指向 JAR 文件条目,则此连接的 Certificate 对象,否则为 null。
- 抛出:
IOException
- 如果获取 JAR 条目导致抛出 IOException。- 参见:
-