Una URL, según Wikipedia, es una cadena de caracteres corta que identifica inequívocamente un recurso (servicio, página, documento, dirección de correo electrónico, enciclopedia, etc.).

En programación se suele usar para abrir ficheros, pero en Java cuando exportamos un proyecto como un Jar y queremos incluir dentro directorios con ficheros adjuntos, abrirlos puede ser un problema.

En mi caso concreto lo he usado con JavaHelp, ya que quiero que la ayuda generada para mi aplicación, se empaquete dentro del Jar y desde línea de código tengo que hacer referencia a la ayuda, para que donde quiera que el usuario final copie el fichero, siempre lo pueda abrir.

URL absoluta

Esta es la manera normal de hacerlo cuando estamos ejecutando nuestro proyecto y aún no está empaquetado.

URL url = new URL("src/com/paquete/help/help.hs");

URL dentro del Jar

Y esta es la solución para que cuando ejecutemos el Jar, busque dentro del mismo y lo abra.

URL url = new URL("jar:file:MiFicheroJar.jar!/com/paquete/help/help.hs");