function IsFileExist(filename) local f = io.open(filename) if f ~= nil then io.close(f) return true else return false end end function IsDirectoryExist(dirname) return os.rename(dirname, dirname) and true or false end local jdtlspath = os.getenv("HOME") .. "/.jdtls" if vim.loop.os_uname().sysname == "Windows" then jdtlspath = os.getenv("HOME") .. "\\.jdtls" end -- 创建目录 if not IsFileExist(jdtlspath) then os.execute("mkdir " .. jdtlspath) end -- 检测文件存在否 if not IsDirectoryExist(jdtlspath .. "/bin/jdtls") then print("download jdtls binary") local download_ret = os.execute( "wget https://download.eclipse.org/jdtls/milestones/1.23.0/jdt-language-server-1.23.0-202304271346.tar.gz -P /tmp" ) if download_ret ~= 0 then vim.notify("download jdtls binary failed") return end vim.notify("download jdtls success") local tar_ret = os.execute("tar xvzf /tmp/jdt-language-server-1.23.0-202304271346.tar.gz -C " .. jdtlspath) if tar_ret ~= 0 then vim.notify("extract jdtls file failed") return end end local lombok_path = jdtlspath .. "/bin/lombok.jar" -- 下载lombok if not IsFileExist(jdtlspath .. "/bin/lombok.jar") then vim.notify("download lombok.jar") local download_ret = os.execute("wget https://projectlombok.org/downloads/lombok.jar -P " .. jdtlspath .. "/bin") if download_ret ~= 0 then vim.notify("download lombok failed") end end