- java.lang.Object
-
- java.net.URLConnection
-
- java.net.JarURLConnection
-
public abstract class JarURLConnection extends URLConnection
与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:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
- 一个jar文件
-
jar:http://www.foo.com/bar/baz.jar!/
- 一个罐子目录
-
jar:http://www.foo.com/bar/baz.jar!/COM/foo/
!/
被称为分离器 。通过
new URL(context, spec)
构建JAR网址时,适用以下规则:- 如果没有上下文URL,并且传递给URL构造函数的规范不包含分隔符,则该URL被认为是引用JarFile。
- 如果存在上下文URL,则假定上下文URL是指JAR文件或Jar目录。
- 如果规范以'/'开始,Jar目录将被忽略,并且该规范被认为是Jar文件的根目录。
例子:
- 上下文: jar:http://www.foo.com/bar/jar.jar!/ ,spec: baz / entry.txt
- url: jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- 上下文: jar:http://www.foo.com/bar/jar.jar!/ baz ,spec: entry.txt
- url: jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
- 上下文: 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
-
-
Field Summary
Fields Modifier and Type Field 描述 protected URLConnection
jarFileURLConnection
与JAR文件URL的连接,如果连接已启动。-
Fields inherited from class java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
JarURLConnection(URL url)
创建新的JarURLConnection到指定的URL。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Attributes
getAttributes()
如果该连接的URL指向JAR文件条目,则返回此连接的Attributes对象,否则返回null。Certificate[]
getCertificates()
如果它的URL指向JAR文件条目,则返回此连接的证书对象,否则返回null。String
getEntryName()
返回此连接的条目名称。JarEntry
getJarEntry()
返回此连接的JAR条目对象(如果有)。abstract JarFile
getJarFile()
返回此连接的JAR文件。URL
getJarFileURL()
返回此连接的Jar文件的URL。Attributes
getMainAttributes()
返回此连接的JAR文件的主要属性。Manifest
getManifest()
返回此连接的清单,否则返回null。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class 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的连接,如果连接已启动。 这应该通过连接设置。
-
-
构造方法详细信息
-
JarURLConnection
protected JarURLConnection(URL url) throws MalformedURLException
创建新的JarURLConnection到指定的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
返回此连接的清单,否则返回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。- 结果
- 这个连接的Attributes对象,如果它的URL指向一个JAR文件条目,否则为空。
- 异常
-
IOException
- 如果获取JAR条目导致抛出IOException。 - 另请参见:
-
getJarEntry()
-
getMainAttributes
public Attributes getMainAttributes() throws IOException
返回此连接的JAR文件的主要属性。- 结果
- 此连接的JAR文件的主要属性。
- 异常
-
IOException
- 如果获取清单导致抛出IOException。 - 另请参见:
-
getJarFile()
,getManifest()
-
getCertificates
public Certificate[] getCertificates() throws IOException
如果它的URL指向JAR文件条目,则返回此连接的证书对象,否则返回null。 一旦通过从输入流读取直到流已经到达结束,连接已被完全验证,才能调用此方法。 否则,此方法将返回null
- 结果
- 此连接的证书对象,如果其URL指向JAR文件条目,否则为空。
- 异常
-
IOException
- 如果获取JAR条目导致抛出IOException。 - 另请参见:
-
getJarEntry()
-
-