java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.net
类 JarURLConnection

java.lang.Object
  继承者 java.net.URLConnection
      继承者 java.net.JarURLConnection

public abstract class JarURLConnection
extends URLConnection

连接到 Java ARchive (JAR) 文件或 JAR 文件中条目的 URL Connection。

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/

!/ 被视为分隔符

通过 new URL(context, spec) 构造 JAR url 时,将应用以下规则:

  • 如果不存在任何上下文 URL 并且传入 URL 构造方法的规范不包含分隔符,则 URL 被视为引用一个 JarFile。
  • 如果存在上下文 URL,则假定该上下文 URL 引用 JAR 文件或 Jar 目录。
  • 如果规范以 '/' 开头,则忽略 Jar 目录,并认为 spec 位于 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

字段摘要
protected  URLConnection jarFileURLConnection
          到 JAR 文件 URL 的连接,如果已启动连接。
 
从类 java.net.URLConnection 继承的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
 
构造方法摘要
protected JarURLConnection(URL url)
          创建到指定 URL 的新 JarURLConnection。
 
方法摘要
 Attributes getAttributes()
          如果此连接的 URL 指向 JAR 文件条目,则返回其 Attribute 对象;否则返回 null。
 Certificate[] getCertificates()
          如果此连接的 URL 指向 JAR 文件条目,则返回其 Certificate 对象;否则返回 null。
 String getEntryName()
          返回此连接的条目名称。
 JarEntry getJarEntry()
          返回此连接的 JAR 条目对象(如果有)。
abstract  JarFile getJarFile()
          返回此连接的 JAR 文件。
 URL getJarFileURL()
          返回此连接的 Jar 文件的 URL。
 Attributes getMainAttributes()
          返回此连接的 JAR 文件的主要 Attribute。
 Manifest getManifest()
          返回此连接的 Manifest;如果没有,则返回 null。
 
从类 java.net.URLConnection 继承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getPermission, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

jarFileURLConnection

protected URLConnection jarFileURLConnection
到 JAR 文件 URL 的连接,如果已启动连接。此方法应该由连接设置。

构造方法详细信息

JarURLConnection

protected JarURLConnection(URL url)
                    throws MalformedURLException
创建到指定 URL 的新 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
返回此连接的 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 文件条目,则返回其 Attribute 对象;否则返回 null。

返回:
如果此连接的 URL 指向 JAR 文件条目,则返回其 Attribute 对象;否则返回 null。
抛出:
IOException - 如果获取 JAR 条目导致抛出 IOException。
另请参见:
getJarEntry()

getMainAttributes

public Attributes getMainAttributes()
                             throws IOException
返回此连接的 JAR 文件的主要 Attribute。

返回:
此连接的 JAR 文件的主要 Attribute。
抛出:
IOException - 如果获取清单导致抛出 IOException。
另请参见:
getJarFile(), getManifest()

getCertificates

public Certificate[] getCertificates()
                              throws IOException
如果此连接的 URL 指向 JAR 文件条目,则返回其 Certificate 对象;否则返回 null。只有通过从条目输入流一直读取到流末尾的方式完全验证了连接之后,才能调用此方法。否则,此方法将返回 null

返回:
如果此连接的 URL 指向 JAR 文件条目,则返回其 Certificate 对象;否则返回 null。
抛出:
IOException - 如果获取 JAR 条目导致抛出 IOException。
另请参见:
getJarEntry()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策