CLOJURE(1)

NAME
clj, clojure - runners to invoke the Clojure compiler

SYNOPSIS
clj [dep-opts...] [init-opts...] [main-opt] [args...]
clojure [dep-opts...] [init-opts...] [main-opt] [args...]

DESCRIPTION
The clojure script is a runner to invoke the Clojure compiler and REPL. The clj script is a wrapper around clojure that uses rlwrap to provide a better interactive experience. Users will typically run clj. Using the tools.deps library to build a classpath, these scripts ultimately construct and invoke a command-line of the form: java [java-opt*] -cp classpath clojure.main [init-opt*] [main-opt] [arg*]

EXAMPLES
You can launch a Clojure REPL by running clj. See the Deps and CLI Guide below for more complex usage.

OPTIONS
The clj and clojure scripts can take three types of options, as shown in the synopsis. dep-opts are used to build the java-opts and classpath. init-opts refer to Clojure code to execute. main-opts are options to clojure.main.

  dep-opts

-Jopt
    Pass opt through in java_opts, ex: -J-Xmx512m

-O:alias
    Concatenated jvm option aliases, ex: -O:mem

-R:alias
    Concatenated resolve-deps aliases, ex: -R:bench:1.9

-C:alias
    Concatenated make-classpath aliases, ex: -C:dev

-M:alias
    Concatenated main option aliases, ex: -M:test

-A:alias
    Concatenated aliases of any kind, ex: -A:dev:mem

-Sdeps EDN
    Deps data to use as the last deps file to be merged

-Spath
    Compute classpath and echo to stdout only

-Scp CP
    Do NOT compute or cache classpath, use this one instead

-Srepro
    Ignore the ~/.clojure/deps.edn config file

-Sforce
    Force recomputation of the classpath (don't use the cache)

-Spom
    Generate (or update existing) pom.xml with deps and paths

-Stree
    Print dependency tree

-Sresolve-tags
    Resolve git coordinate tags to shas and update deps.edn

-Sverbose
    Print important path info to console

-Sdescribe
    Print environment and command parsing info as data

  init-opts

-i, --init path
    Load a file or resource located at path

-e, --eval string
    Eval exprs in string; print non-nil values

--report target
    Report uncaught exception to target: "file" (default), "stderr", or "none", overrides System property clojure.main.report

  main-opts

-m, --main ns-name
    Call the -main function from namespace w/args

-r, --repl
    Run a repl

path
    Run a script from a file or resource located at path

-   Run a script from standard input

-h, -?,  --help
    Print this help message and exit

CONFIGURATION
This script reads configuration from deps.edn files. It will check against deps.edn files in the system default location, the configuration directory (usually ~/.clojure), and the local directory. Files in each of these locations, if they exist, are merged to form one combined configuration file. The last specified configuration file's options overwrites any earlier files (e.g. local configs take priority).

SEE ALSO

https://clojure.org/guides/deps_and_cli
    Deps and CLI Guide

https://clojure.org/reference/deps_and_cli
    Deps and CLI Reference

https://clojure.org/reference/repl_and_main
    REPL and Main Entrypoints

https://github.com/clojure/brew-install/blob/1.10.1/CHANGELOG.md
    Changelog for scripts

https://github.com/clojure/tools.deps.alpha/blob/master/CHANGELOG.md
    Changelog for tools.deps library

BUGS
Visit the bug tracker at https://clojure.atlassian.net/browse/TDEPS to file an issue.

AUTHORS
clojure and clj are maintained by Alex Miller <alex.miller@cognitect.com>. This man page was written by Elana Hashman <ehashman@debian.org>.

COPYRIGHT
Copyright © 2018 Rich Hickey, Alex Miller and contributors. Distributed under the Eclipse Public License 1.0, the same as Clojure.