Skip to content

Commit 41d72bf

Browse files
committed
fix: java version check does not consider env passed for LSP
1 parent 3db02da commit 41d72bf

File tree

1 file changed

+9
-5
lines changed
  • lua/java-core/ls/servers/jdtls

1 file changed

+9
-5
lines changed

lua/java-core/ls/servers/jdtls/cmd.lua

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
9797
end
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()
115116
end
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

Comments
 (0)