@@ -20,7 +20,7 @@ function M.get_cmd(opts)
2020 return function (dispatchers , config )
2121 local cmd = M .get_jvm_args (opts ):concat (M .get_jar_args ())
2222
23- M .validate_java_version ()
23+ M .validate_java_version (config . cmd_env )
2424
2525 log .debug (' Starting jdtls with cmd' , cmd )
2626
@@ -97,8 +97,9 @@ function M.get_jar_args(cwd)
9797end
9898
9999--- @private
100- function M .validate_java_version ()
101- local curr_ver = M .get_java_major_version ()
100+ --- @param env table
101+ function M .validate_java_version (env )
102+ local curr_ver = M .get_java_major_version (env )
102103 local exp_ver = java_version_map [conf .jdtls .version ]
103104
104105 if not (curr_ver >= exp_ver .to and curr_ver <= exp_ver .from ) then
@@ -115,8 +116,11 @@ function M.validate_java_version()
115116end
116117
117118--- @private
118- function M .get_java_major_version ()
119- local version = vim .fn .system (' java -version' )
119+ --- @param env table
120+ function M .get_java_major_version (env )
121+ local proc = vim .system ({ ' java' , ' -version' }, { env = env }):wait ()
122+ local version = proc .stderr or proc .stdout or ' '
123+
120124 local major = version :match (' version (%d+)' )
121125 or version :match (' version "(%d+)' )
122126 or version :match (' openjdk (%d+)' )
0 commit comments