vscode-java VS nvim-jdtls

Compare vscode-java vs nvim-jdtls and see what are their differences.

vscode-java

Java Language Support for Visual Studio Code (by redhat-developer)

nvim-jdtls

Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls (by mfussenegger)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
vscode-java nvim-jdtls
35 75
2,038 926
0.3% -
9.0 7.0
6 days ago about 2 months ago
TypeScript Lua
Eclipse Public License 2.0 GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

vscode-java

Posts with mentions or reviews of vscode-java. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-12.
  • language support for java client couldn't create connection to server
    1 project | /r/vscode | 24 Apr 2023
    Can this issue on github help?
  • Java compiler problem with enums using windows1252 encoding
    1 project | /r/vscode | 13 Apr 2023
    More details about the problem over this issue on github: https://github.com/redhat-developer/vscode-java/issues/3060
  • How to automatically format Java code similar to Rust (rustfmt)?
    2 projects | /r/rust | 12 Apr 2023
    I've tried Google Java Format, following the settings here,
  • Problem with genSources
    1 project | /r/fabricmc | 18 Mar 2023
    It seems I actually got it to work in vscode. I found this thread, in which one person told to add: "java.eclipse.downloadSources": true, "java.maven.downloadSources": true, to the settings.json and it seems to work just fine now. Still thanks for your responses :)
  • Java Intellisense keeps breaking, every few minutes. Need to Clean Java Language Server Workspace to restore. MacOS, 1.75.0
    1 project | /r/vscode | 16 Feb 2023
    Can the retirement version solve the problem? If you are convinced that it is a version of BUG, you can submit a report on GitHub to get official personnel responses.
  • Plz Microsoft could you finally give YOUR OWN PLATFORM the care it deserves?
    2 projects | /r/ProgrammerHumor | 1 Jan 2023
    Good news :) https://github.com/redhat-developer/vscode-java/wiki/Formatter-settings
  • Child Folders that contains a java file in them is requiring a package statement how do I disable that feature
    1 project | /r/vscode | 30 Oct 2022
    There is currently no configuration to turn off. If you really need it, you can submit a feature request on GitHub.
  • Help setting up jdtls for java
    6 projects | /r/neovim | 2 Oct 2022
    -- πŸ’€ "/usr/lib/jvm/java-11-openjdk/", -- or '/path/to/java11_or_newer/bin/java' -- depends on if `java` is in your $PATH env variable and if it points to the right version. "-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", "-javaagent:" .. home .. "/.local/share/nvim/mason/packages/jdtls/lombok.jar", "-Xms1g", "--add-modules=ALL-SYSTEM", "--add-opens", "java.base/java.util=ALL-UNNAMED", "--add-opens", "java.base/java.lang=ALL-UNNAMED", -- πŸ’€ "-jar", vim.fn.glob( home .. "/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar" ), -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ -- Must point to the Change this to -- eclipse.jdt.ls installation the actual version -- πŸ’€ "-configuration", home .. "/.local/share/nvim/mason/packages/jdtls/config_" .. CONFIG, -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ -- Must point to the Change to one of `linux`, `win` or `mac` -- eclipse.jdt.ls installation Depending on your system. -- πŸ’€ -- See `data directory configuration` section in the README "-data", workspace_dir, }, on_attach = { require("jdtls").setup_dap({ hotcodereplace = "auto" }), require("jdtls.dap").setup_dap_main_class_configs(), }, capabilities = capabilities, -- πŸ’€ -- This is the default if not provided, you can remove it. Or adjust as needed. -- One dedicated LSP server & client will be started per unique root_dir root_dir = root_dir, -- Here you can configure eclipse.jdt.ls specific settings -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request -- or https://github.com/redhat-developer/vscode-java#supported-vs-code-settings -- for a list of options settings = { java = { eclipse = { downloadSources = true, }, configuration = { updateBuildConfiguration = "interactive", }, maven = { downloadSources = true, }, implementationsCodeLens = { enabled = true, }, referencesCodeLens = { enabled = true, }, references = { includeDecompiledSources = true, }, inlayHints = { parameterNames = { enabled = "all", -- literals, all, none }, }, format = { enabled = false, }, }, signatureHelp = { enabled = true }, completion = { favoriteStaticMembers = { "org.hamcrest.MatcherAssert.assertThat", "org.hamcrest.Matchers.*", "org.hamcrest.CoreMatchers.*", "org.junit.jupiter.api.Assertions.*", "java.util.Objects.requireNonNull", "java.util.Objects.requireNonNullElse", "org.mockito.Mockito.*", }, }, contentProvider = { preferred = "fernflower" }, extendedClientCapabilities = extendedClientCapabilities, sources = { organizeImports = { starThreshold = 9999, staticStarThreshold = 9999, }, }, codeGeneration = { toString = { template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}", }, useBlocks = true, }, }, flags = { allow_incremental_sync = true, }, -- Language server `initializationOptions` -- You need to extend the `bundles` with paths to jar files -- if you want to use additional eclipse.jdt.ls plugins. -- -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation -- -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this
  • No Syntax Highlighting for Java
    1 project | /r/vscode | 9 Sep 2022
    This is the officially provided extension. if you follow this documentation, still no syntax highlighting, may really be a bug, suggest you file an issue on GitHub.
  • Java on Visual Studio Code Update – June 2022
    1 project | /r/java | 30 Jun 2022
    Try this fix but don't forget VS Code Lombok extension project has not been maintained for long time。

nvim-jdtls

Posts with mentions or reviews of nvim-jdtls. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-09.
  • Having the worst time trying to use JDTLS
    1 project | /r/neovim | 11 Dec 2023
    I recommend that you do not configure jdtls like the other language servers, it is better to use the nvim-jdtls plugin.
  • Noob here, would neovim work for my usecase
    2 projects | /r/neovim | 9 Dec 2023
    Java is actually pretty good with Neovim, jdtls and this plugin. One of the best language servers and I'm using it on a regular base with medium to large projects, mostly spring-based. No Android though.
  • Client 2 quit with exit code 1 and signal 0 when opening a .java files
    2 projects | /r/neovim | 10 Nov 2023
    -- See `:help vim.lsp.start_client` for an overview of the supported `config` options. local config = { -- The command that starts the language server -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line cmd = { -- πŸ’€ 'java', -- or '/path/to/java17_or_newer/bin/java' -- depends on if `java` is in your $PATH env variable and if it points to the right version. '-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', '-Xmx1g', '--add-modules=ALL-SYSTEM', '--add-opens', 'java.base/java.util=ALL-UNNAMED', '--add-opens', 'java.base/java.lang=ALL-UNNAMED', -- πŸ’€ '-jar', '~/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ -- Must point to the Change this to -- eclipse.jdt.ls installation the actual version -- πŸ’€ '-configuration', '~/.local/share/nvim/mason/packages/jdtls/config_linux', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ -- Must point to the Change to one of `linux`, `win` or `mac` -- eclipse.jdt.ls installation Depending on your system. -- πŸ’€ -- See `data directory configuration` section in the README '-data', '/path/to/unique/per/project/workspace/folder' }, -- πŸ’€ -- This is the default if not provided, you can remove it. Or adjust as needed. -- One dedicated LSP server & client will be started per unique root_dir root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}), -- Here you can configure eclipse.jdt.ls specific settings -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request -- for a list of options settings = { java = { } }, -- Language server `initializationOptions` -- You need to extend the `bundles` with paths to jar files -- if you want to use additional eclipse.jdt.ls plugins. -- -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation -- -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this init_options = { bundles = {} }, } -- This starts a new client & server, -- or attaches to an existing client & server depending on the `root_dir`. require('jdtls').start_or_attach(config)
  • Foot – A fast, lightweight and minimalistic Wayland terminal emulator
    1 project | news.ycombinator.com | 23 Sep 2023
    I can get by with https://github.com/mfussenegger/nvim-jdtls
  • [HELP] ftplugin and lazy loading in NvChad
    2 projects | /r/neovim | 11 Jun 2023
    This and this provided no viable solutions for me
  • Anyone using nvim for Kotlin development?
    1 project | /r/nvim | 30 May 2023
  • Help for configure jdtls
    1 project | /r/neovim | 16 May 2023
    I tried to configure jdtls for my NeoVim I followed https://github.com/mfussenegger/nvim-jdtls install instruction. and I faced this error does anyone successfully configured jdtls ? help T ^ T
  • Adding JAR files to nvim-jdtls
    1 project | /r/neovim | 6 May 2023
    Am I adding it to the wrong configuration option? Some places I see it added as a referencedLibary - https://github.com/mfussenegger/nvim-jdtls
  • Does anyone config java for neovim?
    7 projects | /r/neovim | 25 Apr 2023
    Sure. Any server that lspconfig supports will work. But for java development is better if you use nvim-jdtls. The documentation in lsp-zero has a guide on how to setup nvim-jdtls.
  • I can't seem to figure it out
    3 projects | /r/neovim | 24 Apr 2023
    Here' my java.lua for nvim-jdtls which solves the nil issue and add more features.

What are some alternatives?

When comparing vscode-java and nvim-jdtls you can also consider the following projects:

lsp-java - lsp-mode :heart: java

nvim-lspconfig - Quickstart configs for Nvim LSP

eclipse.jdt.ls - Java language server

bash-language-server - A language server for Bash

nvim-lsp-installer - Further development has moved to https://github.com/williamboman/mason.nvim!

vscode-haskell - VS Code extension for Haskell, powered by haskell-language-server

coc-java - Java extension for coc.nvim

vscode-yaml - YAML support for VS Code with built-in kubernetes syntax support

java-debug - The debug server implementation for Java. It conforms to the debug protocol of Visual Studio Code (DAP, Debugger Adapter Protocol).

styleguide - Style guides for Google-originated open-source projects

mason.nvim - Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.