Skip to content

Java version support is quite misleading #4182

Open

Description

@mapio

Here you say that this extension "Supports code from Java 1.8 to Java 25". But since it is based on https://github.com/eclipse-jdtls/eclipse.jdt.ls if you read the details there, it says: "Supports compiling projects from Java 1.8 through 24".

So it is not clear if using Java 25 is safe now. The "code" is supported, but not "compiling" it?

When using gradle configured for Java 25 (with the code obtained from gradle init) I can compile and execute tests, but the "Problems" panel is full of

[{
"resource": ".../bugrep/app/src/main/java/org/example/App.java",
"owner": "_generated_diagnostic_collection_name_#5",
"code": "4195414",
"severity": 4,
"message": "Compiling for Java version '25' is not supported yet. Using '24' instead",
"source": "Java",
"startLineNumber": 1,
"startColumn": 1,
"endLineNumber": 1,
"endColumn": 2,
"origin": "extHost1"
}]

This is quite confusing.

Activity

  1. rgrunber commented on Sep 29, 2025

    @rgrunber
    Member

    Yes, the 2 phrases are meant to imply the same thing. Though we should probably change "code" to "compiling" to make it clear we aren't restricting our support to just runtime. For Gradle, are you using version >= 9.1.0. For using certain versions of Java, you need to be using a version of Gradle that supports that. See https://docs.gradle.org/current/userguide/compatibility.html .

  2. mapio commented on Sep 30, 2025

    @mapio
    Author

    I am using Gradle 9.1.0 and the code compiles. But unless I switch to the insider version and the pre-released extensions, in the problems panel every class reports Compiling for Java version '25' is not supported yet. Using '24' instead.

    I don't know the reason, but it is for sure very confusing for a new user (I'm teaching to a second year undergraduate CS class and when students see an alarm and an error are usually blocked).

  3. mapio commented on Sep 30, 2025

    @mapio
    Author

    To make it more clear, this is a fresh start with

    code . --profile "standard" --user-data-dir /tmp/BUGREP/profile-standard

    Image

    where you can see the problems reported, and the following is obtained with the insiders version

    code-insiders . --profile "insiders" --user-data-dir /tmp/BUGREP/profile-insiders

    Image

    The code is what gradle init produces (I just changed System.out with IO to be sure to use a Java 25 feature).

    bugrep.zip

  4. rgrunber commented on Sep 30, 2025

    @rgrunber
    Member

    This is because Java 25 support (and eclipse-jdtls/eclipse.jdt.ls#3536 ) is in the pre-release stream, but a formal release containing that support has not been done. There is a new release expected for the end of the week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    javaPull requests that update java codequestion

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions