- java.lang.Object
-
- java.net.URLConnection
-
- java.net.JarURLConnection
-
public abstract class JarURLConnection extends URLConnection
URL连接到Java ARchive(JAR)文件或JAR文件中的条目。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时,用户应该将通用URLConnection转换为JarURLConnection,并且他们需要特定于JAR的功能。 例如:
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/
!/
被称为分隔符 。通过
new URL(context, spec)
构建JAR URL时,以下规则适用:- 如果没有上下文URL并且传递给URL构造函数的规范不包含分隔符,则URL被视为引用JarFile。
- 如果存在上下文URL,则假定上下文URL引用JAR文件或Jar目录。
- 如果规范以'/'开头,则忽略Jar目录,并且规范被认为是Jar文件的根目录。
例子:
- context: jar:http://www.foo.com/bar/jar.jar!/ ,spec: baz / entry.txt
- url: jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- context: jar:http://www.foo.com/bar/jar.jar!/ baz ,spec: entry.txt
- url: jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- context: jar:http://www.foo.com/bar/jar.jar!/ baz ,spec: /entry.txt
- url: jar:http://www.foo.com/bar/jar.jar!/entry.txt
- 从以下版本开始:
- 1.2
- 另请参见:
-
URL
,URLConnection
,JarFile
,JarInputStream
,Manifest
,ZipEntry
-
-
字段汇总
字段 变量和类型 字段 描述 protected URLConnection
jarFileURLConnection
如果已启动连接,则与JAR文件URL的连接。-
声明的属性在类 java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
JarURLConnection(URL url)
将新的JarURLConnection创建为指定的URL。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Attributes
getAttributes()
如果此连接的URL指向JAR文件条目,则返回此连接的Attributes对象,否则返回null。Certificate[]
getCertificates()
如果此连接的URL指向JAR文件条目,则返回此连接的Certificate对象,否则返回null。String
getEntryName()
返回此连接的条目名称。JarEntry
getJarEntry()
返回此连接的JAR条目对象(如果有)。abstract JarFile
getJarFile()
返回此连接的JAR文件。URL
getJarFileURL()
返回此连接的Jar文件的URL。Attributes
getMainAttributes()
返回此连接的JAR文件的主要Attributes。Manifest
getManifest()
返回此连接的Manifest,如果没有,则返回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
protected URLConnection jarFileURLConnection
如果已启动连接,则与JAR文件URL的连接。 这应该通过connect设置。
-
-
构造方法详细信息
-
JarURLConnection
protected JarURLConnection(URL url) throws MalformedURLException
将新的JarURLConnection创建为指定的URL。- 参数
-
url
- URL - 异常
-
MalformedURLException
- 如果在规范字符串中找不到合法协议,或者无法解析字符串。
-
-
方法详细信息
-
getJarFileURL
public URL getJarFileURL()
返回此连接的Jar文件的URL。- 结果
- 此连接的Jar文件的URL。
-
getEntryName
public String getEntryName()
返回此连接的条目名称。 如果与此连接对应的JAR文件URL指向JAR文件而不是JAR文件条目,则此方法返回null。- 结果
- 此连接的条目名称(如果有)。
-
getJarFile
public abstract JarFile getJarFile() throws IOException
返回此连接的JAR文件。- 结果
- 此连接的JAR文件。 如果连接是与JAR文件条目的连接,则返回JAR文件对象
- 异常
-
IOException
- 如果在尝试连接到此连接的JAR文件时发生IOException。 - 另请参见:
-
URLConnection.connect()
-
getManifest
public Manifest getManifest() throws IOException
返回此连接的Manifest,如果没有,则返回null。- 结果
- 与此连接的JAR文件对象对应的清单对象。
- 异常
-
IOException
- 如果获取此连接的JAR文件会导致抛出IOException。 - 另请参见:
-
getJarFile()
-
getJarEntry
public JarEntry getJarEntry() throws IOException
返回此连接的JAR条目对象(如果有)。 如果与此连接对应的JAR文件URL指向JAR文件而不是JAR文件条目,则此方法返回null。- 结果
- 此连接的JAR条目对象,如果此连接的JAR URL指向JAR文件,则返回null。
- 异常
-
IOException
- 如果获取此连接的JAR文件会导致抛出IOException。 - 另请参见:
-
getJarFile()
,getJarEntry()
-
getAttributes
public Attributes getAttributes() throws IOException
如果此连接的URL指向JAR文件条目,则返回此连接的Attributes对象,否则返回null。- 结果
- 如果此连接的URL指向JAR文件条目,则为此连接的Attributes对象,否则为null。
- 异常
-
IOException
- 如果获取JAR条目导致抛出IOException。 - 另请参见:
-
getJarEntry()
-
getMainAttributes
public Attributes getMainAttributes() throws IOException
返回此连接的JAR文件的主要Attributes。- 结果
- 此连接的JAR文件的主要属性。
- 异常
-
IOException
- 如果获取清单导致抛出IOException。 - 另请参见:
-
getJarFile()
,getManifest()
-
getCertificates
public Certificate[] getCertificates() throws IOException
如果此连接的URL指向JAR文件条目,则返回此连接的Certificate对象,否则返回null。 只有在通过读取输入流完全验证连接之后才能调用此方法,直到达到流的末尾。 否则,此方法将返回null
- 结果
- 如果此连接的URL指向JAR文件条目,则为此连接的Certificate对象,否则为null。
- 异常
-
IOException
- 如果获取JAR条目导致抛出IOException。 - 另请参见:
-
getJarEntry()
-
-