mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
On Windows the downloaded jdtls was started through bin/jdtls.bat, which runs `python` and then `pause`. Without a working Python the batch file printed pause's prompt in the console code page on stdout; the client stopped reading at that "non-UTF-8 header", killed the process and showed only "exited with code 1". - jdtls: build the JVM command line of the release's launcher script (Equinox launcher jar, per-platform shared configuration, JDK 24+ XML limits, --jvm-arg options, -data) and start `java` from the selected JDK directly, on every platform. Own wrapper scripts and other layouts keep their command. - JSON-RPC transport: stdout lines that cannot start a message header are decoded, logged and handed to the stderr callback instead of ending the connection; stderr and these lines are decoded as UTF-8, else in the Windows OEM/ANSI code page, else lossily. - A process that exits on its own is reported closed only after its remaining output is read, and a failed initialize waits for the exit, so the crash message carries the real exit code and the last lines. - TCP-started language servers and DAP adapters read their output the same way (a non-UTF-8 line no longer stops the reader); stray adapter stdout goes into the adapter's error tail. Fixes #90 Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn