【问题标题】:(Using Leiningen or Choosing a JVM) on OS X(使用 Leiningen 或选择 JVM)在 OS X 上
【发布时间】:2013-03-15 02:25:19
【问题描述】:

我想试用 Clojure,但在 here 的第一步中遇到了一些问题。它建议使用 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_HOME或者把这个目录重命名为/Library/Java/JavaVirtualMachines/jdk.old.foo

【问题讨论】:

  • 安装 leiningen 后,使用起来非常棒。

标签: clojure jvm osx-lion leiningen


【解决方案1】:

Mac 上的 Java 7 仍然很漂亮 broken(至少对我来说是这样),即使在机器上安装它也会破坏 Apple 提供的通常可以正常工作的 Java 6。删除所有 Java 7 安装(可能注销/重新启动),然后从命令行查看 Java 6 是否会运行(键入 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 上继续使用我的 Clojure work

【讨论】:

  • 我还不需要卸载 java 7,但我确实将 /usr/bin/java 链接到 java1.6,然后轻松安装了 lein。
  • 很高兴听到。我的机器上发生了一些事情,干扰了 Swing 应用程序的启动。删除 Java 7(好吧,主要是)解决了这个问题。
【解决方案2】:

仔细检查这些步骤:

  1. 将 lein 复制到 /usr/bin/lein
  2. chmod 755 /usr/bin/lein
  3. lein repl

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2012-02-12
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多