From LXF Wiki
Java is a young and constantly evolving Object Oriented programming language. It was originally an internal project at Sun Microsystems named OAK. The purpose of that project was to develop a high level object oriented programming language for embedded realtime systems such as set top boxes and handheld devices. The OAK project wasn't particularly successful, but Sun took OAK, changed its name to Java and modified it to take advantage of the then steadily growing in popularity World Wide Web and the internet. In 1995 they released it on an unsuspecting world and the rest is history.
The Java language is free to use and a wide variety of extensions exist for any type of programming.
The API, Software Development kit and any extensions you want can be downloaded at the [Java Website (http://java.sun.com/)]
As a side note, the original purpose of the project - to create a high-level language for realtime embedded systems - has actually started coming to fruition with Java itself. Further information on this can be found at the [Java Consortium website (http://www.j-consortium.org/)]. Designing programming languages to operate successfully in 'hard' realtime conditions is a difficult task, so many current 'hard' realtime developers are watching carefully to see how Java develops before committing to the language in any significant numbers.
Hard Realtime systems are those where it is absolutely imperative that responses occur within the specified deadline. (In standard java this could be messed up by a simple garbage collection, which happens when it feels like it).
Soft Realtime systems are those where response times are important but the system will still function correctly if deadlines are occasionally missed. (It is in this area that Java is really currently making inroads.)