树叶云鸿蒙OS教程:鸿蒙OS JarURLConnection

JarURLConnection

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 条目

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 文件的根目录。

例如:

上下文: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

字段摘要

修饰符和类型字段描述
protected URLConnectionjarFileURLConnection与 JAR 文件 URL 的连接(如果已启动连接)。
从类 java.net.URLConnection 继承的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches

构造函数摘要

修饰符构造函数描述
protectedJarURLConnection(URL url)为指定的 URL 创建新的 JarURLConnection。

方法总结

修饰符和类型方法描述
AttributesgetAttributes()如果该连接的 URL 指向 JAR 文件条目,则返回该连接的 Attributes 对象,否则返回 null。
Certificate[]getCertificates()如果此连接的 URL 指向 JAR 文件条目,则返回此连接的证书对象,否则返回 null。
StringgetEntryName()返回此连接的条目名称。
JarEntrygetJarEntry()返回此连接的 JAR 条目对象(如果有)。
abstract JarFilegetJarFile()返回此连接的 JAR 文件。
URLgetJarFileURL()返回此连接的 Jar 文件的 URL。
AttributesgetMainAttributes()返回此连接的 JAR 文件的主要属性。
ManifestgetManifest()返回此连接的清单,如果没有则返回 null。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
从类 java.net.URLConnection 继承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, 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, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString

字段详细信息

jarFileURLConnection

protected URLConnection jarFileURLConnection

与 JAR 文件 URL 的连接(如果已启动连接)。 这应该由连接设置。

构造函数详细信息

JarURLConnection

protected JarURLConnection(URL url) throws MalformedURLException

为指定的 URL 创建新的 JarURLConnection。

参数:

参数名称参数描述
url网址

Throws:

Throw名称Throw描述
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 文件对象

Throws:

Throw名称Throw描述
IOException如果在尝试连接到此连接的 JAR 文件时发生 IOException。

getManifest

public Manifest getManifest() throws IOException

返回此连接的清单,如果没有则返回 null。

返回:

与此连接的 JAR 文件对象对应的清单对象。

Throws:

Throw名称Throw描述
IOException如果获取此连接的 JAR 文件会导致抛出 IOException。

getJarEntry

public JarEntry getJarEntry() throws IOException

返回此连接的 JAR 条目对象(如果有)。 如果与此连接对应的 JAR 文件 URL 指向 JAR 文件而不是 JAR 文件条目,则此方法返回 null。

返回:

此连接的 JAR 条目对象,如果此连接的 JAR URL 指向 JAR 文件,则返回 null。

Throws:

Throw名称Throw描述
IOException如果获取此连接的 JAR 文件会导致抛出 IOException。

getAttributes

public Attributes getAttributes() throws IOException

如果该连接的 URL 指向 JAR 文件条目,则返回该连接的 Attributes 对象,否则返回 null。

返回:

如果此连接的 URL 指向 JAR 文件条目,则为该连接的 Attributes 对象,否则为 null。

Throws:

Throw名称Throw描述
IOException如果获取 JAR 条目导致抛出 IOException。

getMainAttributes

public Attributes getMainAttributes() throws IOException

返回此连接的 JAR 文件的主要属性。

返回:

此连接的 JAR 文件的主要属性。

Throws:

Throw名称Throw描述
IOException如果获取清单导致抛出 IOException。

getCertificates

public Certificate[] getCertificates() throws IOException

如果此连接的 URL 指向 JAR 文件条目,则返回此连接的证书对象,否则返回 null。 只有在通过从输入流中读取直到到达流的末尾来完全验证连接后,才能调用此方法。 否则,此方法将返回 null

返回:

如果此连接的 URL 指向 JAR 文件条目,则为该连接的 Certificate 对象,否则为 null。

Throws:

Throw名称Throw描述
IOException如果获取 JAR 条目导致抛出 IOException。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/162407.html<

(0)
管理的头像管理
上一篇2025-03-18 16:24
下一篇 2025-03-18 16:26

相关推荐

  • 高防服务器的防御原理是什么,如何选择高防服务器?

    高防服务器的防御原理,简单说就是通过流量清洗、防火墙规则和黑洞路由等机制,在攻击流量到达业务服务器之前将其过滤或阻断,从而保障正常访问,流量清洗机制是核心防线高防服务器对抗DDoS攻击,靠的不是单一技术,而是一套组合动作,最常见的攻击类型是流量型攻击,比如UDP洪水、SYN洪水、ICMP放大等,核心思路是耗尽带……

    2026-07-26
    0
  • BGP线路到底是什么意思呢,有什么优势?

    BGP线路是一种通过边界网关协议实现多运营商网络互联的接入方式,能自动选择最优路径,极大提升跨网访问速度和稳定性,是解决国内南北网络瓶颈的核心方案,什么是BGP线路BGP,全称Border Gateway Protocol,边界网关协议,是互联网核心路由协议之一,它负责在自治系统之间交换网络可达性信息,BGP线……

    2026-07-26
    0
  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0
  • 站群服务器一个IP放几个网站合适?,怎么选

    站群服务器一个IP放3-5个网站是大多数情况下的最佳平衡点,但具体数量需根据网站权重、内容质量及IP资源成本灵活调整,这个结论基于搜索引擎对同IP站点的关联判定逻辑,以及站群运营的长期实践,如果你刚接触站群,可能会纠结于IP分配,但核心原则是:不要让搜索引擎轻易识别出这些网站属于同一实体,站群IP分配的底层逻辑……

    2026-07-26
    0
  • DDoS攻击和CC攻击有什么区别,怎么防御?

    DDoS攻击和CC攻击最核心的区别在于攻击目标不同:DDoS攻击主要消耗网络带宽和基础设施资源,而CC攻击专门针对应用层逻辑,耗尽服务器CPU和数据库连接数,两者从原理到防御手段完全不同,攻防视角下的本质差异攻击目标:一个砸门,一个撬锁DDoS攻击(分布式拒绝服务)瞄准的是网络层和传输层,通过大量伪造数据包或畸……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注