[BUG] jdtls LSP plugin not starting despite valid config and prerequisites (boostvolt/claude-code-lsps)
Description
jdtls LSP server is not launching when .java files are read, despite all prerequisites being correctly configured. The plugin from boostvolt/claude-code-lsps marketplace is installed with a valid .lsp.json, but no jdtls process starts.
Environment
- Claude Code version: 2.1.74
- OS: macOS (Darwin 25.3.0, ARM64)
- Java: OpenJDK 21.0.8 (Corretto)
- jdtls binary:
/opt/homebrew/bin/jdtls(verified in PATH) - Plugin:
claude-code-lsps/jdtls/1.0.0(boostvolt marketplace) - ENABLE_LSP_TOOL:
1(set in settings.json env)
Steps to Reproduce
- Install jdtls plugin from boostvolt/claude-code-lsps marketplace
- Verify
.lsp.jsonexists at~/.claude/plugins/cache/claude-code-lsps/jdtls/1.0.0/.lsp.json - Launch Claude Code from a directory containing Java source files (git worktree with Maven projects)
- Read a
.javafile - Wait 30+ seconds
- Check:
ps aux | grep jdtls— no jdtls process found
Expected Behavior
Reading a .java file should trigger the LSP plugin to launch jdtls with the configuration from .lsp.json.
Actual Behavior
No jdtls process is started. No error messages are shown. LSP silently fails to launch.
Diagnostics
All prerequisites verified OK:
| Check | Result |
|-------|--------|
| ENABLE_LSP_TOOL env var | 1 |
| jdtls binary in PATH | /opt/homebrew/bin/jdtls |
| Java version | 21.0.8 Corretto |
| .lsp.json config | Valid JSON, correct structure |
| Plugin directory | ~/.claude/plugins/cache/claude-code-lsps/jdtls/1.0.0/ exists |
| IDE lock files | None (no stale locks) |
| Multiple .java files read | No effect |
.lsp.json contents
{
"java": {
"command": "jdtls",
"args": ["--jvm-arg=-Xmx2G", "--jvm-arg=-XX:+UseG1GC", "-data", ".jdtls-data"],
"extensionToLanguage": {".java": "java"},
"env": {"JAVA_HOME": "/Users/vibhor/Library/Java/JavaVirtualMachines/corretto-21.0.10/Contents/Home"},
"initializationOptions": {...},
"startupTimeout": 120000,
"restartOnCrash": true,
"maxRestarts": 3
}
}
Related Issues
- #14803 — LSP plugins not recognized
- #20050 — LSP plugins not working with native/standalone binary installation
- #15836 — LSP plugins installed and enabled but no server available
Additional Context
This may be related to the plugin loader not discovering or activating the .lsp.json from the boostvolt marketplace plugin. The official marketplace plugin (claude-plugins-official) had similar issues reported in anthropics/claude-plugins-official#379 where .lsp.json files were missing entirely.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗