我想让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中运行它)。
我的设置有什么问题,有什么想法吗?
答案 0 :(得分:9)
我通过Cygwin使用Leiningen没有任何问题。
重新开始使用lein脚本的新副本。不需要编辑它。
最简单的解决方案是在~/.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_CMD
和JAVA_CMD
变量或者,在LEIN_JAVA_CMD
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_OPTS
和JVM_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)
我发现最简单的方法是:
然后它应该在cygwin中工作。