让Leiningen和Cygwin工作

Neo*_*mov 5 cygwin clojure leiningen

我想让Leiningen和Cygwin一起工作.

我认为我遇到的一个问题是我在"C:\ Program Files\Java ..."目录中安装了Java.这个空间似乎引起了问题.

当我尝试在Cygwin中运行lein脚本时,我收到以下错误:

./lein: line 325: C:\Program Files\Java\jdk1.8.0_05\bin\java.exe : command not found
Run Code Online (Sandbox Code Playgroud)

然后我认为这个问题就是空间.所以我改变了第325行:

"$LEIN_JAVA_CMD" \
Run Code Online (Sandbox Code Playgroud)

到(用于测试目的):

"$'C:\\\Program Files\\\Java\\\jdk1.8.0_05\\\bin\\\java.exe'" \
Run Code Online (Sandbox Code Playgroud)

但是,我仍然收到此错误:

./lein: line 325: $'C:\\Program Files\\Java\\jdk1.8.0_05\\bin\\java.exe' : commande introuvable
Run Code Online (Sandbox Code Playgroud)

但是,这个文件显然存在:

Owner@Owner-PC ~
$ ls -alh $'C:\\Program Files\\Java\\jdk1.8.0_05\\bin\\java.exe'
-rwxr-xr-x 1 Owner None 187K  8 mai   15:39 C:\Program Files\Java\jdk1.8.0_05\bin\java.exe
Run Code Online (Sandbox Code Playgroud)

lein脚本似乎正在为Cygwin正确配置Leiningen,但我无法让它工作.

请注意,我之前 Cygwin 之外安装了Leiningen (我在Windows的普通shell中运行它).

我的设置,任何想法可能有什么问题?

A. *_*ebb 9

我通过Cygwin使用Leiningen没有任何问题.

重来

重新开始使用lein脚本的新副本.不需要编辑它.

将PATH设置为包含java

最简单的解决方案是设置路径~/.profile以包含Java的bin目录的路径.然后Lein会在路径上找到java,你可以在shell中访问java及其相关工具.

export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.8.0_05/"
export PATH="${JAVA_HOME}/bin/:${PATH}"
Run Code Online (Sandbox Code Playgroud)

重启你的shell或source ~/.profile.验证是否which java找到了java命令.并运行java以验证您获得帮助输出.

和/或显式设置LEIN_JAVA_CMDJAVA_CMD变量

或者,设置lein使用的LEIN_JAVA_CMDJAVA_CMD变量~/.profile

export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.8.0_05/"
export LEIN_JAVA_CMD="${JAVA_HOME}/bin/java"
export JAVA_CMD=`cygpath -w "${LEIN_JAVA_CMD}"`
Run Code Online (Sandbox Code Playgroud)

重启你的shell或source ~/.profile.

注意:您还可以设置一个独立LEIN_JVM_OPTSJVM_OPTS如果需要的话,但是这不应该是必要的.