1991年,美国Sun公司成立一个由James Gosling领导的“Green项目”,准备为下一代智能家电编写一个控制系统。当时项目组准备使用C++语言进行开发,但是在开发过程中发现了很多问题,例如,C++语言过于复杂、缺少垃圾回收机制、可移植性差等。于是,项目组决定开发一种新的语言,该语言最初取名为Oak(橡树)。Oka的第一个成果是可触摸控制的手持家庭娱乐设备控制器,名为star seven(*7)。1992年,Sun公司为Green项目成立了First Person公司。1993年,互联网热潮席卷全球,第一个浏览器Mosaic诞生。First Person公司重新定位Oak,开始转向网络应用领域。James Gosling认为互联网与Oak的一些特征不谋而合,项目组使用Oak编写的Applet让网页由静态变为动态,该技术在当时而言是一种革命性颠覆技术。1994年,Oak技术包括源代码全部免费公开,Green项目组仿照Mosaic开发出以Oak技术为基础的浏览器Webrunner(后来更名为Hot Java)。1995年,Sun公司注册登记Oak时,发现该名已被占用,因此,将其更名为Java,同时解散First Person公司。1995年3月23日,Java被评为全球十大优秀科技产品之一。
1995年5月23日,Sun公司正式对外发布JDK1.0a2版本和HotJava浏览器,因此,5月23日也被为Java的诞生日。1996年,Sun公司成立Javasoft公司来发展Java,许多公司,例如,IBM、Microsoft、Apple和Oracle等,都开始支持和开发Java产品,众多第三方Java编译器也相继被推出,例如,VJ++、JBuilder等。1996年1月,Sun公司发布了Java的第一个开发工具包JDK1.0,这是Java发展历程中重要里程碑,标志着Java成为一种独立的开发工具。1996年10月,Sun公司发布了Java的第一个即时编译器。1997年2月,JDK1.1版本发布,同年4月,JavaOne会议召开,参与者逾一万人,创造当时全球同类会议规模之纪录。
1998年,Sun公司发布了Java历史上一个重要的JDK版本—JDK1.2,伴随着JDK1.2一起发布的还有JSP(Java Server Pages)、Servlet,EJB(Enterprise Java Beans)等规范,同时,将JDK更名为J2SDK(Java Software Development Kit),J2SDK又名为Java 2,并将Java细分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)和J2ME(Java Micro Edition)三个版本。1999年4月,Sun公司发布了HotSpot虚拟机,它成为了之后所有Sun JDK版本的默认虚拟机。2000年5月,JDK1.3和JDK1.4相继发布;2001年9月,J2EE1,3发布;2002年2月,J2SE1.4发布,自此Java的计算能力有了大幅度提升。
2004年,J2SE1.5发布,其成为Java发展史上的又一里程碑,为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0。2005年6月,JavaOne大会召开,Sun公司公开Java SE6,此时,Java的各个版本已经更名,以取消其中的数字“2”,J2SE更名为JavaSE,J2EE更名为JavaEE,J2ME更名为JavaME。2006年11月,Sun公司将Java技术作为免费软件对外发布。2006年12月,Sun公司发布了JRE6.0。Sun公司宣布,从2007年3月其,全世界所有的开发人员均可对Java源代码进行修改。
2009年4月,Oracle公司以74亿美元收购了Sun公司,取得了Java的版权。2011年7月,Oracle公司发布了Java 7正式版,这次版本升级经过了将近5年时间,也是Oracle公司发布的第一个版本。2014年3月,Oracle公司发布了Java 8正式版,这次版本升级为Java带来了Lambda表达式、流式编程等新特性,这些新特性使得Java变得更加强大。2017年9月,Oracle公司发布了Java 9,这次版本升级强化了Java的模块化系统,让庞大的Java语法更轻量化,而且采用了更高效、更智能的垃圾回收器,并在核心类库上进行了大量更新。2018年3月,Oracle公司发布了Java 10。为了更快地迭代,更好地跟进Java社区反馈,Java版本发布周期调整为每隔6个月发布一次(Sun公司的2年发布一次JDK新版本)。Java 10是这以新规则之后,采用新发布周期的第一个大版本。2018年9月,Oracle公司宣布Java 11正式发布。值得注意的是,Java 11是Java的一个长期支持的版本LTS(Long term Support),Java 11的技术支持时间直到2023年9月,补丁和扩展支持直到2026年9月。同时,Oracle公司公布的Java后继版本路线图展示新的长期支持版本将每三年发布一次。