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
上一篇: 快速了解 URL 的组成
推荐阅读