È Clojure installabile in questo modo?
-
10-10-2019 - |
Domanda
Ho scaricato Clojure 1.2 https://github.com/downloads/ clojure / clojure / clojure-1.2.0.zip , estratto sotto / directory Biblioteca, CLOJURE_HOME creato, ha aggiunto $ CLOJURE_HOME / script al mio $ PATH.
Quando sto cercando di eseguire script CLJ o Repl che si trovano nella directory di script, sto ottenendo questo errore:
Exception in thread "main" java.lang.NoClassDefFoundError: jline / ConsoleRunner Causato da: java.lang.ClassNotFoundException: jline.ConsoleRunner a java.net.URLClassLoader $ 1.run (URLClassLoader.java:202) a java.security.AccessController.doPrivileged (metodo natale) a java.net.URLClassLoader.findClass (URLClassLoader.java:190) a java.lang.ClassLoader.loadClass (ClassLoader.java:307) a sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) a java.lang.ClassLoader.loadClass (ClassLoader.java:248)
Ok, jline.jar non è nel CLASSPATH così ho controllato gli script CLJ e Repl:
CLASSPATH=src/clj:test:test-classes:classes/:script/jline-0.9.94.jar:../clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar
if [ -z "$1" ]; then
exec java -server jline.ConsoleRunner clojure.main
else
SCRIPT=$(dirname $1)
export CLASSPATH=$SCRIPT/*:$SCRIPT:$CLASSPATH
exec java -Xmx3G -server clojure.main "$1" "$@"
fi
Ho scaricato jline.jar sotto $ CLOJURE_HOME / script, ma sto ancora ricevendo lo stesso errore.
Questo mi porta alla domanda:
Qual è il ruolo di https://github.com/downloads/clojure/ clojure / clojure-1.2.0.zip comunque?
E 'dovrebbe essere utilizzato per installare Clojure? o semplicemente per costruire e ottenere clojure.jar?
Ho notato che nessuno sta parlando di installazione Clojure in questo modo.
Mi sto perdendo qualcosa?
Soluzione
Clojure, essendo un linguaggio JVM, deve fare i conti con il classpath di JVM. Questo rende l'installazione '' un po 'ingombrante e confusa. Piuttosto che installare da soli come questo, provare alcuni strumenti come cljr e torta. Ho scritto un post su questo blog che potrebbe essere utile: http://blog.raynes.me/?p = 48
In sintesi: Partenza cljr , torta e Leiningen .
La maggior parte delle persone nella comunità Clojure non hanno Clojure 'installato'. La maggior parte delle persone utilizzano un tool di creazione e / o cljr. Non ha molto senso installare Clojure ad un posto centrale in cui, inevitabilmente, si sta andando a gestione bisogno di dipendenza, e vasetti verrà copiato dappertutto in ogni caso. In ogni caso, è molto più facile lasciare una maniglia strumento il classpath per voi.
Altri suggerimenti
Il file clojure.zip esiste quindi le persone che scrivono strumenti avranno un posto per i loro strumenti per ottenere le parti di cui hanno bisogno;)
Per le persone non scrivere gli strumenti stanno operando su / con l'ultimo ramo github e in modo da ottenere Clojure con un pull git o stanno utilizzando il sopra liningen accennato, torta, cljr, in senso antiorario (Eclipse), la clojure ( IntelliJ), o di NetBeans.