2015-05-25 13 views
8

Ich bin ein absoluter Anfänger in Clojure. Ich habe clojure1.6 und lein (ich benutze ubuntu 15.04). Wie kann ich die Clojure-Datei, die ich mit dem Terminal erstellt habe, ausführen? Gibt es dafür einen Befehl wie clojure file.clj? Ich schätze Ihre Hilfe!Wie starte ich eine Clojure-Datei?

+0

Dies könnte auch hilfreich sein: Hier ist, wie Sie ein einfaches Clojure-Programm mit nur 'java' ohne' lein' ausführen: https://stackoverflow.com/questions/30151387/cant-see-printed-values-if-launch -script-with-java/30167378 # 30167378 – lispHK01

Antwort

9

Die einfache Antwort:

Wenn 'clojure' ein Skript oder ein Alias ​​ist, die Clojure ausgeführt wird (von Java mit entsprechenden Befehlszeilenargumente ausgeführt wird), und „foo .clj“ist der Name Ihres Clojure-Quelldatei, dann können Sie nur

clojure foo.clj 

eingeben Wenn dies nicht funktioniert es ist, dann, weil kein solches Skript in Ihrem Weg ist, aber Sie können ein Skript, dessen Inhalt in etwa so aussehen machen:

#!/bin/sh 
java -cp /usr/lib/clojure-1.6.0.jar clojure.main "[email protected]" -r 

Sie müssen herausfinden, wo die Clojure JAR-Datei ist, und das Stück ersetzen nach -cp. Bei Leiningen haben Sie wahrscheinlich eine Version dieser Datei unter ~/.m2.

Wenn Sie Clojure starten, und eine REPL Prompt erhalten, dann können Sie eingeben:

(load-file "foo.clj") 

oder

(load-file "<path to foo.clj>/foo.clj") 

Die gute Antwort:

See Shlomi und Daniel Comptons Antworten.

Wenn Sie mit Clojure anfangen, kann es eine kleine Lernkurve darüber geben, wie Sie Ihre Verzeichnisstruktur und Dateinamen einrichten, um problemlos mit Leiningen und Clojure zu arbeiten. (Wenn Sie Java gut kennen, ist das ein bisschen einfacher.) Wenn Sie sich jedoch mit Leiningens project.clj-Datei vertraut gemacht haben und wissen, wie Sie Ihre Quelldateien und Namespaces einrichten (nachdem Sie Namespaces kennengelernt haben!), Tun Sie etwas in konventionelle Art wird Ihr Leben mit Clojure viel einfacher machen, als wenn Sie einfach weiter -m und load-file verwenden. (Clojure ist wirklich besser für die Entwicklung kleiner oder großer Projekte als für die Ausführung einzelner Skripte. Clojure braucht zu lange, um als Skriptsprache verwendet zu werden, und mit Leiningen dauert es noch länger.)

3

Zuerst Von allen Clojure-Programmierern wird die REPL häufiger verwendet als eigenständige Dateien. Aber wenn Sie Dateien ausführen möchten, würde ich Boot für schnelle Hacks empfehlen.

Installationsanweisungen für Unix sind auf der Github Boot project page.Sobald Sie den Boot installiert haben, erstellen Sie eine Datei main.boot enthält genannt:

#!/usr/bin/env boot 

(defn -main [& args] 
    (println "Hello world!") 
    (System/exit 0)) 

Dann ist es ausführbar machen und führen Sie es:

$> chmod a+x main.boot 
$> ./main.boot 
Hello world! 

Here's a pretty good introduction to Boot.