欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

JarURLConnection

最编程 2024-07-11 20:19:23
...
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

推荐阅读