Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 在OSX上(使用Leiningen或选择JVM)_Clojure_Jvm_Osx Lion_Leiningen - Fatal编程技术网

Clojure 在OSX上(使用Leiningen或选择JVM)

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

我想试试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/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
请仔细检查以下步骤:

  • 将lein复制到/usr/bin/lein
  • chmod 755/usr/bin/lein
  • 莱恩·雷普

  • 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(好的,大部分)解决了这个问题。