Clojure 在OSX上(使用Leiningen或选择JVM)
我想试试Clojure,但我在第一步遇到了一些问题。它建议使用Leiningen来建立Clojure项目 我下载并运行Clojure 在OSX上(使用Leiningen或选择JVM),clojure,jvm,osx-lion,leiningen,Clojure,Jvm,Osx Lion,Leiningen,我想试试Clojure,但我在第一步遇到了一些问题。它建议使用Leiningen来建立Clojure项目 我下载并运行lein,我看到: Error: dl failure on line 732 Error: failed /Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home/jre/lib/client/libjvm.dylib, because dlopen(/Library/Java/Java
lein
,我看到:
Error: dl failure on line 732
Error: failed /Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home/jre/lib/client/libjvm.dylib, because dlopen(/Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home/jre/lib/client/libjvm.dylib, 10): no suitable image found. Did find:
/Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home/jre/lib/client/libjvm.dylib: mach-o, but wrong architecture
通过一些研究,我发现libjvm.dylib的这个副本是为x86构建的。我想我需要一个为x86_64构建的。我已经下载并安装了一个新的jvm。你可以在这里看到它们:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (7):
1.7.0_b126+, x86_64: "OpenJDK 7" /Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home
1.7.0_b126+, i386: "OpenJDK 7" /Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/Contents/Home
1.7.0_12, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/Contents/Home
1.6.0_43-b01-447, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_43-b01-447, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_26-b03-383, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_26-b03-383.jdk/Contents/Home
1.6.0_26-b03-383, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_26-b03-383.jdk/Contents/Home
我要使用的libjvm.dylib副本位于/Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/…
但我不知道怎么告诉leiningen用这个。实际上我不认为它是leiningen,但不管那个文件是用来下载东西的。不管这是什么东西,它都坚持使用
/Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/
,即使我将Java\u HOME更改或将此目录重命名为/Library/Java/JavaVirtualMachines/jdk.old.foo
请仔细检查以下步骤:
Mac上的Java7仍然很不错(至少对我来说是这样),即使是在机器上安装它,也会把苹果提供的Java6弄得一团糟,而Java6通常工作正常。删除所有Java7安装(可能是注销/重新启动),然后从命令行查看Java6是否将运行(键入Java-version)。如果你看到这样的情况:
$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
如果你这样做了,那你就可以走了。在我删除JDK 7后,我可以继续在mac上使用它。一旦安装了leiningen,它就非常好用了。我还不需要卸载java 7,但我将/usr/bin/java链接到了java1.6,然后很容易地安装了lein。很高兴听到这个消息。我的机器上发生了一些事情,干扰了Swing应用程序的启动。删除Java7(好的,大部分)解决了这个问题。