I want to try out Clojure and I'm having some trouble with the first step from here. It suggests using Leiningen to set up the Clojure project.
I download and run lein
and I see this:
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
Through some research I've discovered that this copy of libjvm.dylib is built for x86. I suspect I need one that's built for x86_64. I've downloaded and installed a new jvm. You can see them here:
$ /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
The copy of libjvm.dylib I want to use is in /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/...
But I don't know how to tell leiningen to use this. I actually don't think it's leiningen, but whatever that file is using to download something. And whatever this something is insists on using /Library/Java/JavaVirtualMachines/OpenJDK-1.7.0-20110203.jdk/
, even if I change JAVA_HOME or rename this directory to /Library/Java/JavaVirtualMachines/jdk.old.foo
.