As of Eclipse Platform 4.6, and the Neon release, a Java 8 (or later) JRE or JDK is required to run Eclipse. There was open discussion in the Platform and EPP communities about this decision. In the end, a few hard requirements to make useful packages tipped the scales. To summarize the discussion:
- Java 8 is available today on all major Platforms (including Linux-ARM for example) and by multiple JRE vendors. In terms of security fixes, it’s safer than Java 7 (for example, TLS v1.2 is only enabled in Java 8 by default).
- By the time 4.6/Neon ships, Java 8 will be 2 years old (so no one can call that "bleeding edge").
- Furthermore, all major versions of Java before 8 are officially end-of-life as of April, 2015; they will no longer receive public updates, making them security risks.
- Java 8 introduces some interesting new language features which some contributors can’t wait to use. This is a difference compared to Java 7 which just updated the libraries but not the language. It’s true we have to cater to users, but we also have to cater to the contributors. If the Eclipse Platform starts looking old-fashioned and lame (and forbidding new language features puts us at risk of looking so), we’d risk losing contributors (which the Platform really needs).
- Eclipse Help system relies on Jetty, which itself requires Java 8 in it's latest (and safest) release. To ship any Eclipse packages with an outdated Jetty or without the Help system pre-installed would be a major detriment.
- The m2e project, a key component of the most popular Eclipse packages (IDE for Java Developers and IDE for Java EE Developers), requires Java 8. As with Jetty and the Help System, it's crucial for Neon packages to include the latest version of m2e.
Bug 481997 was created to track the implementation of the change in the EPP packages.