Can't set the path to JAVA_HOME in VS Code's Java LSP

Here is my flake.nix:

{
  description = "Example";

  inputs = {
    stable.url = "github:NixOS/nixpkgs/nixos-26.05";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    {
      self,
      stable,
      flake-utils,
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = import stable { inherit system; };
      in
      {
        devShells = {
          default = pkgs.mkShell {
            buildInputs = with pkgs; [
              # Java
              javaPackages.compiler.openjdk25
              maven

              # JavaFX native dependencies
              libXxf86vm
              libXtst
              libX11
              libXrender
              libXext
              gtk3
              glib
              alsa-lib
              libGL

              # Editors/IDEs
              vscodium
              zed-editor
            ];

            LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
              pkgs.libXxf86vm
              pkgs.libXtst
              pkgs.libX11
              pkgs.libXrender
              pkgs.libXext
              pkgs.gtk3
              pkgs.glib
              pkgs.alsa-lib
              pkgs.libGL
            ];

            JAVA_HOME = pkgs.javaPackages.compiler.openjdk25;
            MAVEN_OPTS = "-Dmaven.repo.local=./.m2";

            shellHook = ''
              echo "Dev environment ready."
            '';
          };
        };
      }
    );
}

If I hardcode the path to JAVA_HOME in my settings.json file, JDT works fine:

{
    "nixEnvSelector.nixFile": "${workspaceFolder}/flake.nix",
    "nixEnvSelector.useFlakes": true,
    "nixEnvSelector.flakeShell": "default",
    "java.jdt.ls.java.home": "/nix/store/xrhf3v9017v3irpili57j1jxnk4wc710-openjdk-25.0.4+1/lib/openjdk/",
    "java.configuration.updateBuildConfiguration": "automatic"
}

However if I set it to ${env:JAVA_HOME}:

{
    "java.jdt.ls.java.home": "${env:JAVA_HOME}",
}

It complains with an error:

The java.jdt.ls.java.home variable defined in VSCodium settings
points to a missing or inaccessible folder (${env:JAVA_HOME})

Any tips on why this isn’t working and how to fix it?"


#vscode #java #jdt