Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. nvim-jdtls

nvim-jdtls

GPL-3.0Lua0.2.0

Extensions for the built-in LSP support in Neovim to integrate the Eclipse JDT Language Server for Java development.

Visit WebsiteGitHubGitHub
1.5k stars80 forks0 contributors

What is nvim-jdtls?

nvim-jdtls is a Neovim plugin that integrates the Eclipse JDT Language Server to provide advanced Java development features directly within the editor. It extends Neovim's built-in LSP support with refactoring tools, debugging capabilities, test generation, and other Java-specific functionalities, enabling a powerful, keyboard-driven development workflow.

Target Audience

Experienced Java developers who use Neovim as their primary editor and prefer a configuration-as-code approach over GUI-heavy IDEs. It assumes familiarity with Java build tools like Maven or Gradle.

Value Proposition

It offers a lightweight, highly configurable alternative to full IDEs, leveraging Neovim's native LSP client and extensibility. Developers choose it for its simplicity, scriptability, and deep integration with the Eclipse JDT Language Server without leaving the Neovim ecosystem.

Overview

MIRROR of: https://codeberg.org/mfussenegger/nvim-jdtls

Use Cases

Best For

  • Java developers who want a keyboard-centric, terminal-based workflow in Neovim
  • Setting up a lightweight Java IDE alternative with advanced refactoring tools
  • Integrating Java debugging and JUnit testing directly into Neovim via nvim-dap
  • Working on Maven or Gradle projects with full language server support
  • Extracting variables, methods, and constants with precise editor commands
  • Generating boilerplate code like constructors, toString, and equals/hashCode methods

Not Ideal For

  • Developers prioritizing quick, GUI-driven setup over configuration-as-code
  • Projects not using Maven or Gradle build systems (single-file or custom builds)
  • Teams needing out-of-the-box debugging and testing without manual bundle installation
  • Environments with Java versions below 21 or without Python 3.9 for the jdtls script

Pros & Cons

Pros

Advanced Refactoring Tools

Provides extract variable/method/constant, organize imports, and generate boilerplate code like constructors and toString, as detailed in the Extensions list, enabling precise code manipulation.

Integrated Debugging and Testing

Supports debugging applications and JUnit tests via nvim-dap with java-debug and vscode-java-test bundles, offering IDE-like capabilities directly in Neovim, per the Debugger section.

Extended Java-Specific Features

Includes bytecode viewing with javap, memory analysis with jol, and project-aware JShell, leveraging the Eclipse JDT Language Server for deep Java tooling beyond basic LSP.

Configuration-as-Code Flexibility

Follows the KISS principle, allowing experienced users to fully customize their setup through Lua scripts, as emphasized in the Philosophy and Configuration sections.

Cons

Complex Initial Setup

Requires separate installation of eclipse.jdt.ls, manual bundle configuration for debugging, and data directory management, with multiple troubleshooting steps needed for common failures.

Performance Overhead on Large Projects

Admits that completion requests can be slow on big projects and aggressive auto-completion plugins may overload the server, impacting responsiveness, as noted in the Troubleshooting section.

Dependency on External Tools

Needs Java 21, Python 3.9 for the jdtls script, and Maven/Gradle for full functionality, creating compatibility barriers and additional maintenance overhead.

Manual Bundle Management

Advanced features like debugging and test generation require downloading and configuring java-debug and vscode-java-test bundles separately, adding complexity compared to integrated IDEs.

Open Source Alternative To

nvim-jdtls is an open-source alternative to the following products:

IntelliJ IDEA
IntelliJ IDEA

IntelliJ IDEA is a powerful integrated development environment (IDE) for Java and other JVM languages, developed by JetBrains, known for its intelligent code assistance and productivity features.

Visual Studio Code
Visual Studio Code

A free, open-source code editor developed by Microsoft that supports debugging, embedded Git control, syntax highlighting, and extensions for many programming languages.

E
Eclipse

Frequently Asked Questions

Quick Stats

Stars1,489
Forks80
Contributors0
Open Issues2
Last commit2 months ago
CreatedSince 2020

Tags

#vimscript#junit-testing#java#neovim-plugin#lsp-client#refactoring-tools#language-server-protocol#neovim#java-development#debugging#code-intelligence#lua-configuration

Built With

N
Neovim
J
Java
L
Lua

Links & Resources

Website

Included in

Neovim20.6k
Auto-fetched 17 hours ago

Related Projects

nvim-lspconfignvim-lspconfig

Quickstart configs for Nvim LSP

Stars13,807
Forks2,471
Last commit1 day ago
lspsaga.nvimlspsaga.nvim

improve neovim lsp experience

Stars3,793
Forks304
Last commit8 days ago
none-ls.nvimnone-ls.nvim

null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

Stars3,246
Forks122
Last commit1 month ago
rustaceanvimrustaceanvim

🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim

Stars3,051
Forks131
Last commit21 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub