leiningen 在 运行 "lein check" 时尝试访问旧的 JDK

leiningen trying to access old JDK when running "lein check"

我刚刚更新了我的 Java,leiningen 仍在尝试访问旧的 JDK,尽管它已被删除:

C:\Users\slomi\IdeaProjects\mandelbrot>lein check
java.io.IOException: Cannot run program "C:\Program Files\Java\jdk1.8.0_77\bin\java.exe" (in directory "C:\Users\slomi\IdeaProjects\mandelbrot"): CreateProcess error=2, The system cannot find the file specified

这似乎与我的 IDE 没有任何关系,因为我没有 运行 IDE.

中的上述命令

当然,这似乎是一个 PATH 问题,但在用户变量下,有条目:

LEIN_JAVA_CMD C:\Program Files\Java\jdk1.8.0_101\bin\java.exe

这似乎是我需要修复的条目。这也是除了系统变量中对 "C:\ProgramData\Oracle\Java\javapath" 的引用之外我能找到的唯一 Java 相关路径。

有趣的是,lein uberjar 有效。

它必须在某处或某处缓存了旧路径。有谁知道如何解决这一问题? check 是一个不错的工具。

结果比我想象的更直接。在系统变量中,我找到了对 C:\Users\MY_USER_NAME\.lein\bin 的引用,并决定四处寻找。 .lein 文件夹中有一个 profiles.clj 文件,其中包含:

{:user
  {
  :java-cmd "C:\Program Files\Java\jdk1.8.0_77\bin\java.exe"
  :plugins [

    ]
   }
 }

我刚刚更新了那个路径,lein check 立即开始工作。