JarURLConnection

Applets often store their .class files in a JAR archive. This bundles all the classes in one package that still maintains the directory hierarchy needed to resolve fully qualified class names like com.macfaq.net.QueryString. Furthermore, since the entire archive is compressed and can be downloaded in a single HTTP connection, it requires much less time to download the .jar file than to download its contents one file at a time. Some programs store needed resources such as sounds, images, and even text files inside these JAR archives. Java provides several mechanisms for getting the resources out of the JAR archive, but the one that we’ll address here is the jar URL. Java 1.2 introduces a new class that allows you to use URLs that point inside JAR archives, JarURLConnection:

public abstract class JarURLConnection extends URLConnection // Java 1.2

A jar URL starts with a normal URL that points to a JAR archive like http://metalab.unc.edu/javafaq/network.jar or file:///D%7C/javafaq/network.jar. Then the protocol jar: is prefixed to this URL. Finally, !/ and the path to the desired file inside the JAR archive are suffixed to the original URL. For example, to find the file com/macfaq/net/QueryString.class inside the previous .jar files, you’d use the URLs jar:http://metalab.unc.edu/javafaq/network.jar!/com/macfaq/net/QueryString.class or jar:file:///D%7C/javafaq/network.jar!/com/macfaq/net/QueryString.class. Of course, this isn’t limited simply to Java .class files. You ...

Get Java Network Programming, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.