Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ide-dev] Java 25 early access - request for feedback

Dear All,

It's my pleasure to invite you all to test early access builds with support for the next version of Java!

Java 25 is scheduled for release on 16 September, 2025.

Prior to that release the preferred way of consuming latest JDT builds from JAVA_BETA25 branches is this:

* Upgrade an existing installation >= I20250616-1800 with the patch from
  https://download.eclipse.org/jdt/updates/4.37-P-builds


After installation you will be able to configure the compiler for compliance
"25 (BETA)" with this disclaimer:

    This is an implementation of an early-draft specification developed
    under the Java Community Process (JCP) and is made available for testing
    and evaluation purposes only. The code is not compatible with any
    specification of the JCP.


As always we appreciate reports about any new bugs you might find.


While innovation in recent Java versions mostly happened behind the "preview" flag, it's Java 25 where three of these features are "graduating", i.e., they will be part of standard Java since 25.

For these reasons you may want to get your hands on these features sooner rather than later, but more importantly, it's the Eclipse community which can make the difference if working with these features will be a smooth experience for everybody out there. For that reason I'd like to encourage everybody to test
* if the compiler handles everything as expected
* if IDE functions should be amended or new ones created for good UX


These are the three language features becoming standard:


* JEP 513: Flexible Constructor Bodies

  In current Java a constructor *must* invoke a super constructor before
  any other statements, with a strange loophole of a few things that are
  allowed to happen in the argument list of the super invocation.
  * this causes hard-to-spot bugs if the super constructor branches into
    any code that assumes fields to be correctly initialized, which may
    not be the case.
  * the new rules specifically support initializing fields before the
    super() call, thus avoiding the above problem.
  * being optional now, the feature also paves the road to value classes

* JEP 512: Compact Source Files and Instance Main Methods

  This feature is targeted at teaching, to allow writing small programs
  without the heavy lifting of scaffolding, which uses concept that should
  be taught at a later point in the course, i.e., programming without
  - packages / imports
  - class declaration
  - public static void main(String... args)
  Notable change from previews: class IO has moved package and needs
  to be mentioned explicitly as in: IO.println("Hello World");

* JEP 511: Module Import Declarations

  This can be seen as a spin-off of the previous: simplify import lists
  by bulk-importing all API of an entire module in just one line.
  (Implicitly declared classes implicitly import all of java.base)


While I'm at it, one feature released already with Java 23 - support for markdown javadoc - still deserves a bit more love in terms of editor functionality etc.
See, e.g., https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/1800


Happy testing!
Stephan



Back to the top