我try 使用苹果wine 在emacs上运行一个Clojure JAR文件,得到以下错误:

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

我在系统环境和用户环境上的env路径上都设置了PowerShell路由,如下所示:

enter image description here

Java版本:"20.0.1"

我不确定我错过了什么才能成功地运行命令cider-jack-in

推荐答案

Mathias R. Jessen在一条 comments 中提供了关键的指针:

在类似WindowsUnix的平台上,特殊的101[1] environment variable(在PowerShell中可在进程级别访问为$env:PATH--请参阅概念上的about_Environment_Variables帮助主题)--包含a list of (usually absolute) directory paths in which the platform APIs look for executables when an attempt is made to invoke an executable by file name only(而不是明确地通过文件path).

  • 因此,应该添加到该列表的永远不是给定可执行文件file本身的路径,而是该可执行文件所在的directory.

General information:

  • 用于分隔PATH个条目的separator characterplatform-specific:

    • Windows使用;,而类Unix平台使用:
    • programmatically确定此字符,请使用[System.IO.Path]::PathSeparator
  • 条目的order很重要:使用列出的first目录,在该目录中可以找到给定名称的可执行文件.

    • 此外,仅在Windows上,如果名称不包括filename extension(例如,只有foo而不是foo.exe),Windows会try 特殊的PATHEXT in order中列出的扩展名来查找匹配的可执行文件(在Unix上,可执行文件not通常有扩展名,如果有,则必须显式指定).
  • PowerShell本身支持以编程方式修改PATHpersistent定义,因此需要直接使用[System.Environment]::SetEnvironmentVariable().NET API:

    • However:
      • (A)此API可在Windows only上运行(有no种统一机制可在所有类Unix平台上运行)
      • (B)此API isn't robust,因为它总是将REG_EXPAND_SZ PATH的定义转换为REG_SZ
    • 有关背景信息和基于注册表的解决方法,请参见this answer.

[1]在Windows上的确切情况是Path,而在类Unix平台上是PATH.由于Windows中的环境变量访问是CASE-insensitive,而在Unix上是CASE-sensitive,因此表单PATH可以在这两个平台上运行.

Java相关问答推荐

更新我们的一个文物后出现了严重的符号引用错误

Oracle DUAL表上使用DDL时jOOQ问题的解析'

无法传递消费者<;>;实例

滚动视图&不能在alert 对话框中工作(&Q;&Q;)

使用Spring Boot3.2和虚拟线程的并行服务调用

格式中的特定回录键-值对

我的Spring Boot测试显示&IlLegalStateException:无法加载某事的ApplicationContext.

在添加AdMob时无法为Google Play构建应用程序包:JVM垃圾收集器崩溃和JVM内存耗尽

如何将Java文档配置为在指定的项目根目录中生成?

支持MySQL 5.6的最新Hibernate版本

在VS代码中,如何启用Java Main函数的&Q;Run|DEBUG&Q;代码?

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

使用htmlunit和java单击按钮

从LineChart<;字符串、字符串和gt;中删除数据时出现特殊的ClassCastException;

通过Java列表中的某些字段搜索值

将双倍转换为百分比

在实例化中指定泛型类型与不指定泛型类型之间的区别

如何设计包含已知和未知键值对映射的Java类?

设置背景时缺少Android编辑文本下划线

什么是;u〃;平均值;jdku;在java开发工具包中?