Comment sortir de la REPL
Je suis en train de quitter le REPL.
- Je utiliser (. System exit 0)
ou (System/exit 0)
, mais qui provoque une erreur:
Exception in thread "Thread-3" java.lang.RuntimeException: java.lang.IndexOutOfBoundsException
Est-il une autre voie pour sortir de la REPL? Comment je peux résoudre ce problème?
- Je voudrais ajouter plus spécifique à la question: quelle est la façon de tuer repl avec le code, pas de commandes externes..
- Eh bien c'travaux de nettoyage à l'aide de la
java -jar clojure.jar
pour Clojure 1.11.0-master-INSTANTANÉ. Je suppose que l'aide de la linnux version ou de brasser de la version mac, fonctionne avec (sortie)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envoyer la "fin-de-fichier' caractère.
Vous pouvez appuyez simplement sur ctrl-d (*nix) ou ctrl-z (Windows) pour quitter le REPL.
Il semble que vous avez un autre problème dans votre code.
Le moyen de sortir de la repl est:
(System/exit 0)
La syntaxe alternative
(. System exit 0)
fonctionne également.Vous pouvez le tester à partir d'un propre repl commencé avec:
java -cp clojure.jar clojure.main -r
L'exception que vous obtenez semblerait indiquer une erreur dans certains indexé de recherche avant de votre code obtient à la sortie prévue point, apparemment sur un thread différent.
lein repl
. (Vous devriez être en mesure d'obtenir un repl sans projet mis en place avec lein). Quelque chose à propos de votre projet de code ou de la structure est probablement à l'origine du problème. Peut-être que vous avez un code qui est en cours d'évaluation avant votre fonction principale est jamais appelé.Le problème avec (Système/de sortie, 0), c'est qu'il tue l'ensemble de la JVM. La vraie question est de savoir comment de programmation pour la sortie en cours de réplication, et retourner à ce que la fonction qui lance repl.
Ici est une pratique hack:
clojure.principal/repl appelle à plusieurs reprises un lecteur, par défaut repl-lire, pour obtenir une forme à la fois. L'un des arguments est que le lecteur est un spécial sentinel objet que le lecteur est censé retourner quand il n'y a pas plus de formes pour être lu. Le lecteur par défaut, repl-lire, renvoie la sentinelle de valeur que sur les expressions du FOLKLORE. Au repl-lecture rapide, vous n'avez pas accès à la sentinelle de l'objet, de sorte que vous ne pouvez pas retourner à dire à l'évaluateur que vous avez terminé la saisie de formulaires. Par l'installation de votre propre lecteur, vous pouvez vérifier pour une forme particulière-par exemple, le symbole de sortie -- et le retour de la sentinelle de l'objet à chaque fois que ce formulaire est à lire, indiquant ainsi à l'évaluateur que vous êtes prêt à quitter le repl, sans tuer tout le VM.
je voulais juste quitter mon REPL et a atterri ici.
Cela semble être une question qui me vient à lesprit de tout le monde quand on commence à faire les premiers pas dans la Clojure REPL. Et bien sûr je n'ai pas lu le message de démarrage. La réponse pour mon Clojure 1.7.0 est (sortie) ou (quitter) ou Control-d comme indiqué dans d'autres réponses.
(exit)
a échoué avec l'erreuruser=> (exit) Syntax error compiling at (REPL:1:1). Unable to resolve symbol: exit in this context
. J'ai ha dto utilisation ( (. Système de sortie de 0) à move.@andreas-guther je vois la tête ... nREPL serveur .... dans le vôtre . Peut version 1.7 et ci-dessous travaillé avecexit
hors de la boîteexit
œuvres tout en utilisantlein repl
Vous pouvez utiliser la combinaison de touches suivante à la sortie de Cidre REPL dans emacs:
C-c C-q
Si vous installez "lein" alors il est
exit
ouquit
comme ceci:aujourd'hui j'ai la réponse, c'est ce que j'ai besoin de
pour quitter le repl:
Si vous utilisez la réplication à partir de la ligne de commande, puis (comme Sean mentions) ctrl-d
si vous l'exécutez à partir de slime puis Alt-x slime-quitter-lisp devrait le faire.
si vous l'exécutez à partir d'eclipse, puis
je ne suis pas sûr qu'il y est un moyen propre à la sortieutiliser le petit bouton rouge.Dans Windows (testé sur Windows 7 x64), en utilisant le standard de la commande shell (cmd.exe), le ctrl-Z (suivi de la touche entrée) personnage apparaît à la fin-de-fichier de l'indicateur, il m'a laissé tomber hors de l'REPL retour à l'invite de commande. Je soupçonne que ce sera aussi le travail de manière équivalente dans Windows PowerShell, quelqu'un qui est familier avec elle merci de tester et de confirmer...
Remarque aussi que c'est pour le stock Clojure REPL - si vous utilisez le Datomic shell (ce qui semble être une instance de Java Beanshell), tapez "quit();"...
HTH.