Skip to content

JDK_HOME can be sorted after lower-priority auto-detected JDK sources #4426

Description

@shblue21

Describe the bug
When the Java home settings are not set, a JDK configured through JDK_HOME may not be listed first if another JDK is also detected from JAVA_HOME or PATH.

JDK_HOME seems to be intended as the highest-priority source.

To Reproduce

  1. Leave java.jdt.ls.java.home, java.home, and java.configuration.runtimes unset.
  2. Make sure java.configuration.detectJdksAtStart is enabled.
  3. Configure JDK_HOME with one valid JDK.
  4. Configure JAVA_HOME, or PATH, with a different valid JDK.
  5. Restart VS Code.
  6. Open Java: Configure Java Runtime and check the detected JDK order.

Actual behavior
The JDK from JDK_HOME may appear after the other detected JDK.

Expected behavior
The JDK from JDK_HOME should appear first.

Environment

  • Operating System: macOS
  • JDK version: JDK 17 from JDK_HOME, JDK 25 from JAVA_HOME
  • Visual Studio Code version: 1.125.0-insider
  • Java extension version: 1.55.0

Additional Information
sortJdksBySource() gives JDK_HOME rank 0, but the later rank check does not treat 0 as an assigned rank.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions