BetterThanTomorrow / calva

Clojure & ClojureScript Interactive Programming for VS Code
https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva
Other
1.72k stars 219 forks source link

Getting Started Repl doesnt start on WIndows w/ Oracle Java 15 and 16 #1162

Closed stuartstein777 closed 1 year ago

stuartstein777 commented 3 years ago

Issue Type: Bug

Click nREPL in bottom toolbar Click Fire Up Getting Started REPL Click Use Existing Directory repl fails to start with the error in the terminal:

The output window shows ; Jacking in... ; Starting Jack-in Terminal: java -jar ".calva\deps.clj.jar" -Sdeps "{:deps {nrepl/nrepl {:mvn/version,""0.8.3""},cider/cider-nrepl {:mvn/version,""0.25.11""}}}" -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]"

The terminal, on fail, shows: java -jar ".calva\deps.clj.jar" -Sdeps "{:deps {nrepl/nrepl {:mvn/version,""0.8.3""},cider/cider-nrepl {:mvn/version,""0.25.11""}}}" -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]" Error while parsing option "--config-data {:deps {nrepl/nrepl {:mvn/version,0.8.3},cider/cider-nrepl {:mvn/version,0.25.11}}}": java.lang.NumberFormatException: Invalid number: 0.8.3 Jack-in process exited. Status: 1

Extension version: 2.0.194 VS Code version: Code 1.55.2 (3c4e3df9e89829dce27b7b5c24508306b151f30d, 2021-04-13T09:35:57.887Z) OS version: Windows_NT x64 10.0.18363

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz (8 x 2712)| |GPU Status|2d_canvas: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: enabled_on
video_decode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|15.89GB (3.60GB free)| |Process Argv|--crash-reporter-id 88f8d9b0-038d-493b-8525-6ef9c92ebe8c| |Screen Reader|no| |VM|0%|
e to send. Please paste.
hanyuone commented 3 years ago

The bug has been confirmed by Oracle and is being tracked here: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8266473

They have confirmed it with JDK11 even. I will test it, but my guess is that it is with JDK15 or 16 that the installer wires up the problematic java.exe as system default.

The bug's been fixed, and they said it's getting put into versions 17 and 18.

PEZ commented 3 years ago

That's good. But really they should put the fix into the JDK11-16 distributions too.

timrobinson33 commented 2 years ago

For those who are struggling to understand this behavior, it might help to understand that Windows itself has no concept of parameters or quoting. In unix/macOS a process is invoked with a list of arguments, and the shell is responsible for parsing a command line to build that list, but for Windows, when a process is invoked it is simply passed the raw command line. It's completely up to the process itself to decide how to interpret that command line as a list of arguments, and so there is no guarantee of consistency between different programs.

PEZ commented 1 year ago

Closing this now. We reported the bug to the Java team and they fixed it, they even back-ported it to Java11-16. It is a bit too involved to create a workaround in Calva. Even if someone put in the work, we would still need to maintain it.