जून 1991 में जेम्स गोसलिंग ने अपने कई सेट-टॉप बॉक्स परियोजनाओं में से किसी एक परियोजना में उपयोग करने के लिए जावा भाषा परियोजना को प्रारम्भ किया। इस भाषा का नाम पहले "ओक" (Oak) था जिसका नामकरण गोसलिंग के कार्यालय के बाहर स्थित एक ओक पेड़ के नाम पर हुआ था। इसके बाद इसका नाम "ग्रीन" (Green) भी पड़ा और अंत में इसका नाम "जावा" पड़ा. यह जावा नाम क्रमबद्ध शब्दों की एक सूची में से लिया गया। गोसलिंग का लक्ष्य था कि वे एक वर्चुअल मशीन व एक भाषा की शुरुआत करें जो C/C++ शैली पद्वति से परिचित हो। 

1995 में सन ने जावा 1.0 के रूप में पहला सार्वजनिक कार्यान्वयन रिलीज़ किया। प्रचलित प्लेटफार्मों पर बिना-मूल्य रन-टाइम (चालू होने में लगने वाला समय) की सुविधा प्रदान करते हुए इसने "राइट वंस, रन एनीव्हेयर" (WORA) का वादा किया। पर्याप्त सुदृढ़ और समनुरूपयोग्य (कॉन्फिगरेबल) सुरक्षा प्रकट करते हुए इसने नेटवर्क और फाइल एक्सेस के प्रतिबंधों को अनुमति दे दी। मुख्य वेब ब्राउज़रों ने जल्द ही वेबपेजों के भीतर जावा "एप्लेटों" को चलाने की योग्यता को सम्मिलित कर लिया और जल्द ही जावा विख्यात हो गया। "जावा 2" (जिसे दिसम्बर 1998 में शुरू-शुरू में J2SE 1.2 के रूप में रिलीज़ किया गया) के आगमन के साथ नये भाषांतरों (वर्सन) में बहु आकृति (कॉन्फिगरेशन) थी जो विभिन्न प्रकार के प्लेटफार्मों के लिए निर्मित थी। उदाहरणस्वरुप, एंटरप्राइज़ अप्लिकेशन के लिए लक्षित "J2EE" और मोबाइल अप्लिकेशन के लिए अत्यंत नवीन वर्सन "J2ME" . "J2SE" ने मानक (स्टैण्डर्ड) संस्करण (एडिशन) को लक्षित किया। 2006 में, व्यापर के उद्देश्य से सन ने "J2" के नये वर्सनों का नाम बदलकर क्रमश: "जावा EE", "जावा ME" और "जावा SE" कर दिया।

1997 में, सन माइक्रोसिस्टमस ने जावा को अमली जामा पहनाने के लिए ISO/IEC JTC1 मानक समिति को और बाद में ऐक्मा अंतराष्ट्रीय को प्रस्ताव भेजा, पर जल्द ही यह इस प्रक्रिया से हट गई। जावा समुदाय प्रक्रिया द्वारा नियंत्रित जावा "वास्तव में" एक डी फैक्टो मानक बना हुआ है। अपने सॉफ्टवेयर मालिक होने के दर्जे के बावजूद, एक बार सन ने बिना शुल्क के जावा कार्यान्वयन का अधिकांश हिस्सा उपलब्ध कराया. सन ने जावा से विशेष उत्पाद जैसे जावा इंटरप्राइज सिस्टम को लाइसेंस बेचकर मुनाफा कमाया. सन ने अपने सॉफ्टवेयर डेवेलपमेंट किट (SDK) और रनटाइम एनवायरनमेंट (JRE) (SDK का एक उपसमुच्चय (सबसेट)) में भेद किया; प्राथमिक भेद में JRE का कम्पाइलर की कमी, उपयोगिता प्रोग्राम और हेडर फाइल्स शामिल हैं।

13 नवम्बर 2006 को, सन ने GNU जनरल पब्लिक लाइसेन्स (GPL) के शर्तों के अधीन अधिकांश जावा को स्वतंत्र और मुक्त स्रोत सॉफ्टवेयर के रूप में रिलीज़ किया। 8 मई 2007 को सन ने प्रक्रिया का समापन किया, कोड के एक छोटे से हिस्से जिस पर सन का प्रकाशनाधिकार (कॉपीराईट) नहीं है, उसे छोड़कर बाकि जावा के सभी कोर कोड को मुफ्त सॉफ्टवेयर/मुक्त-स्त्रोत वितरण शर्त के तहत उपलब्ध कराया.

जावा प्लैटफॉर्म
उदाहरण
वाक्यविन्यास
इतिहास