Я пытаюсь запустить файл jar clojure на emacs, используя сидр, и получаю следующую ошибку:
ERROR:ERROR: Unhandled REPL handler exception processing messageUnhandled REPL handler exception processing message {{:op:op init-debuggereval, , :code cljs.core/demunge, :session 9f9a0db9-8cc7-4cf0-b0ba-f426b163fb52, :id :nrepl.middleware.print/stream?7 }1
, :nrepl.middleware.print/print cider.nrepl.pprint/pprint, :nrepl.middleware.print/quota 1048576, :nrepl.middleware.print/buffer-size 4096, :nrepl.middleware.print/options {:right-margin 70}, :session 2f97cb2f-b111-4c37-8658-b63045c9ab2a, :id 6}
Syntax error macroexpanding at (clojuredocs.clj:19:32).
Caused by: java.io.IOException: Cannot run program "powershell.exe": CreateProcess error=2, The system cannot find the file specified
У меня есть маршрут powershell, установленный в моем окружении PATH как для системных окружений, так и для пользовательских окружений следующим образом:
Java-версия: "20.0.1"
Я не уверен, чего мне не хватает, чтобы успешно выполнить команду cider-jack-in
Вам нужен содержащий каталог в переменной env PATH, например. C:\WINDOWS\System32\WindowsPowerShell\v1.0, а не C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
Спасибо за ваши ответы! Матиас, ты был прав, я удалил файл из пути, и он наконец заработал! СПАСИБО
ОП или @MathiasR.Jessen: пожалуйста, напишите ответ. Комментарии могут быть удалены в любое время — они не помогают пользователям искать такие вопросы и ответы. Они не доступны для поиска здесь, в гугле и т. д.




Матиас Р. Джессен предоставил ключевую информацию в комментарии:
Специальная переменная среды PATH[1] (доступная в PowerShell на уровне процесса как $env:PATH — см. концептуальный раздел справки about_Environment_Variables) — как на Windows, так и на Unix-подобных платформах — содержит список (обычно абсолютных) путей к каталогам, в которых API-интерфейсы платформы ищут исполняемые файлы при попытке вызвать исполняемый файл только по имени файла (а не однозначно по пути к файлу).
Общая информация:
Символ разделителя, используемый для разделения записей PATH, зависит от платформы:
;, тогда как Unix-подобные платформы используют :[System.IO.Path]::PathSeparatorПорядок записей имеет значение: используется первый из перечисленных каталогов, в котором найден исполняемый файл с заданным именем.
foo вместо foo.exe), Windows пробует расширения, перечисленные в специальном PATHEXT, чтобы найти соответствующий исполняемый файл (в Unix исполняемые файлы обычно не имеют расширения, и если они есть, они должны быть указаны явно).Сам PowerShell не поддерживает программное изменение постоянного определения PATH, что требует прямого использования [System.Environment]::SetEnvironmentVariable() .NET API:
REG_EXPAND_SZPATH в REG_SZ[1] The exact case on Windows is Path, whereas on Unix-like platforms it is PATH. Since environment-variable access in Windows is case-insensitive, whereas on Unix it is case-sensitive, the form PATH works on both platforms.
Рад слышать, что это помогло, @Claudia.
Я смутно припоминаю, что в некоторых операционных системах Emacs имеет какие-то проблемы с PATH. Попробуйте также установить exec-path. и посмотрите, поможет ли это.