A language.
A class library (3000+ classes).
An execution environment (the JVM).
A computation model (reflection, dynamic distributed computing).
A security model (verified bytecodes, sandboxed execution).
A protocol set (JNI, RMI, Serialization, ...)
Subsystems (JINI, JXTA, JavaBeans, ...)
Simple
Robust
Object oriented
Interpreted
Architecture neutral, redundant with interpreted.
Portable, redundant with interpreted.
High performance, yeah whatever.
Secure, too complicated.
Dynamic, advanced class.
Distributed, different class.
Multithreaded, different class.
1992, Marketing and failure.
1993-4, Spin-off and failure, browsers and success.
1995, Java 1.0 proof of concept.
1996, Java 1.0 and 1.1 released.
1998, Java 1.2 released.