Jesktop Documentation

by Paul Hammant, William Beebe

What is it?

The Jesktop project is a desktop system written in Java that can have GUI applications installed into it. It is semi-dependant upon NanoContainer which is a component framework at Codehaus. NanoContainer and Constructor Dependency Injection are going to change the way we think of Java based component computing.

Jesktop has been under construction since November 2000. It's team was founded by people building William's Portable Java Environment (PJE) since early 2000.

Jesktop's Goals

  • To have a fully functional Java desktop environment running on a fully functional Java operating system that is portable across a number of host operating systems, or if there is JDK support in a BIOS layer, without a host operating system.
  • To have a single CD installation of Linux (or other Java capable OS) without it's own applications, but with NanoContainer, Jesktop and many Java apps pre-configured.
  • To see the Jesktop and NanoContainer used widely by Java enthusiasts and deployed on yet to be created Network appliances and palm sized devices (when palm sized devices support J2SE). That's right, we see this running on small devices. The attraction to hardware manufactureres is obvious - a standard open source OS layer that can support multiple applications safely.
  • To see thousands of GPL, MPL, SPL, Commercial etc. etc. apps runnable inside Jesktop. All will be hot installable, reinstallable and de-installable. No reboot/restart necessary. No questions asked.

Why Java?

Simply put, Java allows a number of different hardware chipsets and configurations to run the same "executable". It allows those multitude of configurations to sepcify their own contstraints (Java's exceptionally fine grained permissions architecture) for applications that are loaded into the machine and know that app, never before seen by that machine can never exceed it's authority.

Targetted devices

Assuming that the hardware power needed to run the JVM is available sometime soon, we see all of the following being able to have Jesktop installed:

  • Mobile phones.
  • Personal Digital Assitants.
  • Network/Internet applicances.
  • Notebooks, PCs, Workstations.
  • Games machines like the Sony Playstation2

You may want to checkout SAVAJE who are doing something very similar, but commercial.


Jesktop and NanoContainer work within the confines of Sun's JDK implementation. If there are classes needed that are not supplied by the JDK, then they are written either as part of the project or in a seperate jar. We are not seeking to replace or re-write JDK packages, we'll use what Sun provide. If there is something that is needed (in our opinion) in the JDK, then we'll use the bug parade and community process to raise the issue. We are not seeking to use clean-room JVMs, we'll use virtual machines from Sun, IBM, Blackdown etc as long as they are J2SE compatible. We are not trying to coerce traditional main() applications to run inside Jesktop. For various reasons, we have specified a different (but not incompatible) mechanism than the standalone "main" concept.


WARNING: This software is not unit tested status at the moment. A lot works, but there are usability issues for some of the apps that are built in or bundled. Please don't expect a bullet-proof experience at this stage, it's just a work in progress. Help needed to work on this!!!!

Available Resources

Hosting provided by : SourceForge Logo Jesktop API SourceForge project page