Skip to content

[Bug] Packaged JDTLS startup depends on PowerShell and user PATH #273

Description

@1lck

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmacossomething related to macos stronglywindowssomething related to windows strongly

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions