DEV.co
Open-Source Testing · nvim-java

nvim-java

nvim-java is a Neovim plugin that integrates Java development tools (JDTLS, debugger, test runner) into the editor with minimal setup. It supports Spring Boot, diagnostics, debugging, testing, and refactoring out of the box.

Source: GitHub — github.com/nvim-java/nvim-java
1.7k
GitHub stars
94
Forks
Lua
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorynvim-java/nvim-java
Ownernvim-java
Primary languageLua
LicenseMIT — OSI-approved
Stars1.7k
Forks94
Open issues36
Latest releasev4.1.2 (2026-07-03)
Last updated2026-07-04
Sourcehttps://github.com/nvim-java/nvim-java

What nvim-java is

Lua-based Neovim plugin leveraging Eclipse JDTLS (v1.43.0), nvim-dap for debugging, and Java extensions (test adapter, debug adapter, Lombok, Spring Boot tools) to provide LSP-driven Java development. Auto-installs dependencies including JDK 17 by default.

Quickstart

Get the nvim-java source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/nvim-java/nvim-java.gitcd nvim-java# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Spring Boot development in Neovim

Integrated Spring Boot tools, automatic debug/run configuration, and built-in log viewer streamline Boot application development without leaving the editor.

Rapid Java prototyping with minimal config

Single setup call with sensible auto-install defaults (JDTLS, JDK, extensions) removes friction for developers wanting to code Java immediately.

Full-featured testing and debugging workflow

Run/debug individual test methods or entire suites, view test reports, and step through code with integrated DAP—all via keyboard commands.

Implementation considerations

  • Requires Neovim 0.11.5+ and manual installation of nvim-dap + nui.nvim plugin dependencies; auto-install handles JDTLS and JDK only.
  • JDK version is hardcoded to 17 by default but configurable via vim.lsp.config(); verify your project's Java target matches or override explicitly.
  • JDTLS workspace cache must be manually cleaned via command; no automatic invalidation on configuration changes documented.
  • Log output routed to file (nvim-java.log) and console; max 1000 lines by default—verify verbosity for debugging complex issues.
  • Refactoring APIs (extract variable/method/field) are wrappers around JDTLS LSP; test thoroughly on unfamiliar codebases before relying in production.

When to avoid it — and what to weigh

  • You require IDE-grade UI features — nvim-java provides text-based UI only (no visual debugger, no graphical refactoring wizards). Complex projects may need IntelliJ IDEA's UI richness.
  • Your team uses Windows with WSL1 or lacks native Java — While Windows is listed as supported, no details confirm WSL compatibility or handling of Java runtime edge cases. Requires explicit verification.
  • You need proprietary/vendor-specific Java tooling — Plugin is limited to standard Eclipse JDTLS, Maven, Gradle, and open-source extensions. Enterprise tooling integrations are not mentioned.
  • Your codebase has heavy Gradle/Maven customization — Auto-detection of build systems is assumed but not detailed. Complex multi-module projects may require manual JDTLS/build configuration.

License & commercial use

Licensed under MIT (MIT License), a permissive OSI-approved license. Allows unrestricted use, modification, and distribution in commercial and private projects.

MIT license permits commercial use without restriction. No commercial support, warranty, or vendor endorsement implied. Users are responsible for plugin maintenance and JDTLS/extension updates.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Plugin downloads and auto-installs JDTLS, Lombok, extensions, and JDK binaries from GitHub/third-party repos. Verify package integrity if using corporate proxies or air-gapped networks. No built-in signature verification. Debug adapter runs local code; inspect test/debug configurations to avoid unintended execution.

Alternatives to consider

IntelliJ IDEA Community Edition

Full-featured IDE with superior UI, refactoring, and built-in debugging; no editor learning curve but heavier resource footprint.

VS Code with Extension Pack for Java (Microsoft)

Lightweight, widely supported, integrates JDTLS + extensions automatically; graphical UI; less keyboard-centric than Neovim.

nvim-jdtls (standalone Neovim plugin)

Minimal JDTLS wrapper without auto-install or Spring Boot tools; suitable for users wanting full control over configuration.

Software development agency

Build on nvim-java with DEV.co software developers

nvim-java simplifies setup with one-command installation. Verify Neovim 0.11.5+ compatibility and review the configuration guide to get started.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

nvim-java FAQ

Does nvim-java work on macOS?
Yes, macOS is listed as a supported platform. Verify JDK availability and Neovim 0.11.5+ installation. Exact M1/M2 chip support is not explicitly documented.
Can I use a different JDK version (e.g., Java 21)?
Yes. Override via vim.lsp.config('jdtls', { settings = { java = { configuration = { runtimes = [...] } } } }) or set jdk.version in setup() to auto-install a different version.
What happens if JDTLS or JDK download fails?
Unknown; no documented fallback or recovery procedure. Check nvim-java.log and verify network/firewall rules. Disable auto_install and provide manual paths if needed.
Is Lombok automatically supported?
Yes. Lombok extension (v1.18.40) is auto-installed and enabled by default. Disable via { lombok = { enable = false } } in setup() if not needed.

Custom software development services

Need help beyond evaluating nvim-java? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source testing integrations — and maintain them long-term.

Ready to bring Java development to Neovim?

nvim-java simplifies setup with one-command installation. Verify Neovim 0.11.5+ compatibility and review the configuration guide to get started.