nvim-jdtls简介

Neovim for eclipse.jdt.ls 中内置 LSP 支持的扩展。
Neovim (>= 0.6.0) 中对eclipse.jdt.ls的内置语言服务器协议支持的扩展。

该项目遵循KISS 原则,面向对 Neovim、Java 及其构建工具 Maven 或 Gradle 有一定经验的用户,他们更喜欢将配置作为代码而不是 GUI 配置。易于使用不是主要优先事项。

纯内置LSP实现的方式可以参考我之前写的文章:
《neovim内置lsp实现Java语言补全》
https://blog.csdn.net/lxyoucan/article/details/123443937

插件安装

需要 Neovim (>= 0.6.0)
nvim-jdtls 是一个插件。像安装任何其他 Vim 插件一样安装它:
如果使用vim-plug:Plug 'mfussenegger/nvim-jdtls'
如果使用packer.nvim:use 'mfussenegger/nvim-jdtls'

项目主页:
https://github.com/mfussenegger/nvim-jdtls

JDK版本选择

这里有一个小坑,就是JDK的版本要选择JDK11及以上版本才行。因为就目前来看,JDK8使用的概率还是非常高的。

如果你使用JDK8,使用java文件会报如下的错误:
Client 1 quit with exit code 1 and signal 0

推荐使用JDK11,因为我实测JDK11是正常使用的,其他版本的JDK我没有一一测试。
我的版本信息如下:

java -version
java version "11.0.10" 2021-01-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)

JDK版本选择

这里有一个小坑,就是JDK的版本要选择JDK11及以上版本才行。因为就目前来看,JDK8使用的概率还是非常高的。

如果你使用JDK8,使用java文件会报如下的错误:
Client 1 quit with exit code 1 and signal 0

推荐使用JDK11,因为我实测JDK11是正常使用的,其他版本的JDK我没有一一测试。
我的版本信息如下:

java -version
java version "11.0.10" 2021-01-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)

下载解压jdt-language-server

下载jdt-language-server
不同版本下载导航
https://download.eclipse.org/jdtls/milestones/?d
我最终下载的版本是:

https://download.eclipse.org/jdtls/milestones/1.9.0/jdt-language-server-1.9.0-202203031534.tar.gz

以下我的路径是个人喜好,可以根据自己的实际情况修改保存路径:

#创建workspace目录,后面会用到
mkdir -p ~/.local/share/nvim/lsp/jdt-language-server/workspace/folder
cd ~/.local/share/nvim/lsp/jdt-language-server
# 下载jdt-language-server-xxxxx.tar.gz
wget https://download.eclipse.org/jdtls/milestones/1.9.0/jdt-language-server-1.9.0-202203031534.tar.gz
# 解压
tar -zxvf jdt-language-server-1.9.0-202203031534.tar.gz

我的目录结构如下图所示

配置

要配置 nvim-jdtls, 添加以下内容 ftplugin/java.lua 在 neovim 配置基目录 (示例. ~/.config/nvim/ftplugin/java.lua, 详情见 :help base-directory)。

nvim ~/.config/nvim/ftplugin/java.lua

编辑文件,并且我的内容如下,请根据自己的实现情况调整。
主要就是文件的路径调整。

local config = {cmd = {"java","-Declipse.application=org.eclipse.jdt.ls.core.id1","-Dosgi.bundles.defaultStartLevel=4","-Declipse.product=org.eclipse.jdt.ls.core.product","-Dlog.protocol=true","-Dlog.level=ALL","-Xms1g","--add-modules=ALL-SYSTEM","--add-opens","java.base/java.util=ALL-UNNAMED","--add-opens","java.base/java.lang=ALL-UNNAMED","-jar","/home/vnc/.local/share/nvim/lsp/jdt-language-server/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar","-configuration","/home/vnc/.local/share/nvim/lsp/jdt-language-server/config_linux","-data","/home/vnc/.local/share/nvim/lsp/jdt-language-server/workspace/folder"},root_dir = require("jdtls.setup").find_root({".git", "mvnw", "gradlew"}),settings = {java = {}},init_options = {bundles = {}}
}
require("jdtls").start_or_attach(config)

小坑提醒:
org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar这个jar包的小版本号一直在变,不要忘记调整了,我之前就因为这个版本号浪费了好久排错。

为了方便大家理解每行配置的意思,我把配置做了注释,主要源于官方文档的翻译。
当心

neovim使用nvim-jdtls搭建Java IDE相关推荐

  1. 【视频】零基础neovim搭建Java IDE

    文章目录 视频教程 系统环境 准备工作 文件下载 安装neovim 0.6以上版本 下载解压jdt-language-server 安装JDK11 安装curl git neovim配置 插件安装 配 ...

  2. 从零开始vim搭建Java开发环境之coc.nvim 篇

    前言 vim之美妙我就不过多介绍了,懂的自然懂.之前我已经有一篇文章介绍如何使用SpaceVim来搭建Java开发环境. 传送门:<从零开始vim搭建Java开发环境[视频]> 最近使用c ...

  3. Neovim 打造 Java IDE

    Neovim 打造 Java IDE 当你习惯了 Vim 文本编辑器,你就习惯了 Vim 文本编辑器(

  4. Linux搭建部落冲突,Neovim+Coc.nvim配置 目前个人最舒服终端编辑环境(PythonC++)

    1. 前言 目前最常用的环境还是linux的服务器,所以最终选择的是nvim作为自己的首要编辑器,毕竟没有写一些比较大型的项目.在经过多次的摸索后,我还是选择了Neovim + Coc.nvim,放弃 ...

  5. 从零开始vim搭建Java开发环境[视频]

    视频教程 从零开始vim搭建Java开发环境 全屏观看 前言 起初我仅仅是想在手机上搭建一套能开发Java的vim环境.<玩转手机中的linux系统termux并搭建java开发环境> 玩 ...

  6. macOS中SpaceVim搭建java开发环境

    安装JDK11 过程略,可参考: https://blog.csdn.net/lxyoucan/article/details/111120215 macOS安装支持Python 3的neovim 为 ...

  7. Ubuntu 18.04.1 搭建Java环境和HelloWorld

    一.搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technet... 选择相应的 ...

  8. Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境

    Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境 对于初学者来说,如果没有接触过java web开发的话,搭建开发环境将是一个门槛.以前一直 ...

  9. 搭建JAVA可视化开发环境

    搭建JAVA可视化开发环境需要如下步骤: 1.下载安装Eclipse 2.下载安装EMF插件 3.下载安装GEF插件 4.下载安装VE插件 5.使用 1.下载安装Eclipse 返回 下载地址:htt ...

最新文章

  1. java hasnextstring_Java – ListIterator和hasNext
  2. 皮一皮:防狼泳衣...
  3. 「开源」首次被列入“十四五”规划,未来大有可为
  4. “阳光天使”2007全国小姐大赛北京赛区决赛
  5. Android应用程序显示未读消息计数
  6. Angularjs 动态添加指令并绑定事件
  7. chrome vue插件_不容错过的 Chrome 插件推荐合集-开发者必备篇
  8. 怎么把video文件改成mp4_GiliSoft Video Converter将MP4视频转换成M4V格式教程
  9. 提交注册信息到数据库中
  10. 起来吧!不要做奴隶的ITproject师们!
  11. 如何在Eclipse导入Java源代码
  12. 教你N种方法萤石云添加设备(转)
  13. STM32F411RE Nucleo笔记-按键控制PWM占空比
  14. 基于Springboot的网上商城
  15. 全国十大加班城市排行榜加班最疯狂的城市
  16. cont_c指令_SFB41_CONT_C输入和输出参数
  17. 如何去掉CSDN中图片水印
  18. java.sql.SQLException: 无效的列类型: 1111 (jdbcType相关)
  19. Verilog HDL语言总结(全)
  20. 全新自适应地址发布页HTML源码

热门文章

  1. 中国是世界上最幸福的国家么?
  2. 每天一道算法题-暴力求解建物流中间站
  3. 生物识别产业指纹识别锁在门禁锁的战略性前景
  4. 干货|读懂公链学开发:深入浅出剖析比原链技术特性(分享实录)
  5. 基于PHP+MySQL的咖啡销售购物商城网站
  6. 首先的亚当和末后的亚当_亚当–循序渐进
  7. 深入立即Linux网络技术内幕学习笔记第十六章:桥接:Linux实现
  8. 西门子串口通讯11-CP441-2在博图环境中做Modbus从站通讯
  9. 集群服务器session同步
  10. 是不是签了合同,我就卖给了他们了?!这家公司拿合同来要挟我:就是累死,也不准离职,否则交2万元的“违约金”。