Java URL

Version 0.6

[Download]    [Applications]    [Status]    [FAQ]   
[Architecture]    [JNLP Extensions]    [Links]    [Credits]


The mission of the Java URL project is to transform the way services are provided over the Internet.

Instead of using a browser to access clunky web applications, we can now run a launcher and safely run full Java applications over the Internet. Launcher technology is integrated with browser technology for a seamless Internet experience.

To allow launchers access to our application, we can bind it to a URL. It is thus available to anyone with a Java virtual machine and an Internet connection.

Launching the application is as simple as:

  • Clicking a Java link in a Java-URL-enabled web browser, such as Internet Explorer and Netscape Navigator;
  • Or, we can avoid web browsers entirely and run the lightweight Safe Network Launcher;
  • Or, we can launch directly from the command line like this:
> java launch

The application will run on our computer (or other device) just like any other application, except that it is wrapped tightly in a secure environment that protects our data and resources from evil.

Java is a proven technology for rapid and secure device-neutral development, and is the strongest platform for the next generation of Internet/intranet applications. Until now, Java has failed to become the interface for the Internet, mainly because deployment was limited to applets embedded in conventional web pages. Java URL breaks the applet barrier, and brings Java to its full potential, by making deployment of Java applications as immediate as the deployment of web applications.

The Java URL project is committed to supporting all varieties of Java, from JDK 1.1 compliant virtual machines, to the Java 2 Platform, and even the Java 2 Platform Micro Edition. Likewise, Java URL is committed to compliance with the JNLP (Java Network Launching Protocol) scheme for the Java 2 Platform.

If you already have the Safe Network Launcher installed, check out our applications index here.

More information about the mission of the project is available in an article I wrote for JavaWorld magazine, September 2000.

Good for Users

You are no longer confined to web browsers for accessing compelling Internet services such as e-commerce.  The Internet sites can now behave just like any other application you run on your machine, without requiring you to install anything.

You feel fairly safe in pointing our web browser at a web page. You know that it can't eat up our computer and steal your data. The Safe Network Launcher guarantees the same level of security. Whenever an invasive operation is attempted, the launcher will ask you if you allow it. If you do, it works. If your don't, access is blocked. That's straightforward security that works, and opens you up to thousands of applications on the Internet without virus paranoia and installation woes. 

Good for Service Providers

Deployment is no small issue in the Internet age. How can you get to as many people as possible? Requiring users to install software immediately cuts down the number of users. It also requires you to support users with installation problems. And how will you handle an upgrade to a new version of your application? Even in a controlled Intranet environment, deploying an application can be a large-scale operation.

Web applications mean zero deployment. It's as easy as turning on your web server. Anyone with a web browser can point it at your service, and upgrades are straightforward. However, web technologies, even at their most advanced, are awkward for many applications, and are not very sexy. With Java URL, you get the same web-style zero deployment for real applications.

Good for Developers

An application with web clients is incredibly hard to design, program, debug, and test.

You are stuck with HTTP, an antiquated session-less and state-less protocol that requires much trickery to manage client-server communication. It is mostly a "pull" technology that does not allow dynamic "pushing" of data to clients. A Java client allows you to use connection- and transaction-oriented infrastructures, such as CORBA, RMI and EJB.

Java applets enable these technologies, but still lock you in the HTTP scheme. Web browsers, where Java applets live, are notorious for inflexible security measures, that do not allow the applet to contact its server even if the user would agree to it.

For the MMI, you are stuck with HTML, DHTML and client-side scripting. These dictate a page-by-page user interface, with very limited windowing, no dialog boxes, widgets, controls, etc. While creative developers can overcome these design limitations, the real nightmare is in debugging and testing. Developing the MMI client in Java is more flexible, and most importantly - testable. You can use "real" GUI frameworks, such as AWT and JFC/Swing.

Java applets enable these benefits, but still lock you in the page-by-page HTML scheme. Sure, you can open AWT and JFC/Swing windows, but you still have that huge web browser in the background. If the user moves to another page, the applet is killed. 

Good for the Community

Because all source in the Java URL project is free, you can freely change the code to suit your needs. However, the GNU General Public License requires you to keep your changed version free in the same way, so that everybody can benefit from your improvements.

Likewise, the Safe Network Launcher's user-oriented security scheme does not require signing with special license keys, available only for a cost from authorized license vendors. As a user, you decide whom to trust. As a developer, if you want users to trust your software, you will need to do more than buy a key.


Smart Sandbox Security

Similar to the sandbox implemented by web browsers, but with much less hassle. Users control the relationship between the application and their computers, by bestowing "trust" on specific behaviors of specific applications.


All resources (Java code and otherwise) are cached locally to save download time and improve performance. Applications are be able to control caching, and to perform background downloading to the cache while the user is doing something else.

Background Downloading

Required resources are downloaded in the background while the application is running.


Java URL supports the Java Network Launching Protocol (JNLP) over HTTP.

Updates and Version Control

Cached files include version information, so new versions at the URL will automatically download, replacing older versions in the cache.


Each URL has its own file versions, so different URLs running the same application in different versions can coexist. Resources may be marked as shared across partition boundaries to save space in the cache and download time.


If you feel you can help, please do. This project is my idea, and I am its integrator and coordinator, but I do not claim ownership over it. Ownership of software is a weird concept. If you feel grateful, prove it by sending me money. My name is Tal Liron and you may contact me at "tliron at uchicago dot edu" for more information. For general questions, please check the FAQ first.

Keep in Touch

We have our own mailing list on ListBot. Join for updates and discussions. Mail flow is very light.
Enter your email: , and click here:

(Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Tal Liron and the Java URL Project are independent of Sun Microsystems, Inc.)

(The Java URL tulip logo is a trademark of Mother Nature, a controversial fictional entity that symbolizes our relationship with our habitat.
You may reproduce the tulip for commercial and non-commercial purposes... for now, until some idiot patents it.)