Problem
Packaged JDTLS startup currently goes through platform wrapper scripts. On Windows this requires powershell.exe to be discoverable through the application process PATH; analogous shell-wrapper coupling exists on macOS. A user with a restricted or customized PATH can therefore fail to start the bundled Java language server even though Lithe already ships JDTLS and its dedicated JDK.
Expected behavior
Packaged builds should launch the bundled java or java.exe directly with deterministic JDTLS arguments and must not require PowerShell, shell wrappers, or tools from the user environment.
Scope
- Resolve the bundled Equinox launcher JAR, platform configuration directory, and Lombok agent in platform adapters.
- Pass those resources through the shared
lsp.startServer contract.
- Build the complete JDTLS JVM argument list in Rust Core.
- Preserve wrapper compatibility for external or legacy JDTLS installations.
- Fail early with an actionable packaging error when bundled resources are incomplete.
- Verify Windows startup with PowerShell absent from the application
PATH, plus macOS packaging and cross-platform contract coverage.
Acceptance criteria
- Packaged Windows JDTLS reaches
language/status: ServiceReady with no PowerShell entry in the application PATH.
- The direct child process is the bundled
java.exe; no cmd.exe, PowerShell, or jdtls.bat process is required.
- Packaged macOS uses bundled Java with the correct architecture-specific configuration.
- Existing external wrapper plans remain compatible.
Problem
Packaged JDTLS startup currently goes through platform wrapper scripts. On Windows this requires
powershell.exeto be discoverable through the application processPATH; analogous shell-wrapper coupling exists on macOS. A user with a restricted or customizedPATHcan therefore fail to start the bundled Java language server even though Lithe already ships JDTLS and its dedicated JDK.Expected behavior
Packaged builds should launch the bundled
javaorjava.exedirectly with deterministic JDTLS arguments and must not require PowerShell, shell wrappers, or tools from the user environment.Scope
lsp.startServercontract.PATH, plus macOS packaging and cross-platform contract coverage.Acceptance criteria
language/status: ServiceReadywith no PowerShell entry in the applicationPATH.java.exe; nocmd.exe, PowerShell, orjdtls.batprocess is required.