获得Leiningen& Cygwin工作

时间:2014-07-08 14:24:40

标签: clojure cygwin 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

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

"$LEIN_JAVA_CMD" \

到(用于测试目的):

"$'C:\\\Program Files\\\Java\\\jdk1.8.0_05\\\bin\\\java.exe'" \

但是,我仍然收到这个错误:

./lein: line 325: $'C:\\Program Files\\Java\\jdk1.8.0_05\\bin\\java.exe' : commande introuvable

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

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

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

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

我的设置有什么问题,有什么想法吗?

6 个答案:

答案 0 :(得分: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}"

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

和/或明确设置LEIN_JAVA_CMDJAVA_CMD变量

或者,在LEIN_JAVA_CMD

中设置lein使用的JAVA_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}"`

重新启动shell或source ~/.profile

注意:如果需要,您还可以设置单独的LEIN_JVM_OPTSJVM_OPTS,但这不是必需的。

答案 1 :(得分:2)

如果您之前在Windows上安装了lein并希望从cygwin访问它,请执行以下操作:

on cmd:

cd C:/Users/%userprofile%/.lein/bin
mklink lein lein.bat

on cygwin:

export CYGWIN=winsymlinks:nativestrict

答案 2 :(得分:1)

我感觉到你的痛苦。几年前我自己尝试过类似的东西。 你至少有两个问题。正如你所指出的那样,一个是让lein像unix一样运行。实际上有两个lein脚本 - 一个用于unix,另一个用于windows下的批处理脚本。 你的更大的问题是java.exe - 让windows java可执行文件表现为cygwin shell,特别是在cygwin shell中运行的unix lein脚本,预计是凌乱和脆弱的事。

我强烈建议使用支持Windows(可能是LightTable)的clojure ide,或者使用unix java SDK安装完整的linux虚拟机,并在该环境中进行clojure开发。在virtualbox上运行的Ubuntu是免费提供的,并且我过去曾使用过这个选项。

答案 3 :(得分:1)

您需要创建一个指向" lein.bat"的符号链接。 file.so你在Cygwin中正确使用它。 打开CMD并转到" .lein"路径(cd %userprofile%\.lein\bin)并执行此操作:mklink lein lein.bat

答案 4 :(得分:0)

@ a-webb几乎是正确的,但仍有一些步骤要完成。首先,你会找到一个名为“.lein”的文件夹,你在cygwin中运行lein脚本,进入,复制文件夹&#34 ;自安装"在C:\ Users \ yourUserName.lein里面 然后,将C:\ Users \ yourUserName.lein \ bin添加到环境变量$ Path。

答案 5 :(得分:0)

我发现最简单的方法是:

  • 通过Windows二进制文件和
  • 安装
  • 将lein bash脚本复制到.lein / bin

然后它应该在cygwin中工作。