ClojureDocs

Nav

Namespaces

main

clojure.main

Available in 1.6
  • (main & args)
Usage: java -cp clojure.jar clojure.main [init-opt*] [main-opt] [arg*]
 With no options or args, runs an interactive Read-Eval-Print Loop
 init options:
  -i, --init path     Load a file or resource
  -e, --eval string   Evaluate expressions in string; print non-nil values
 main options:
  -m, --main ns-name  Call the -main function from a namespace with args
  -r, --repl          Run a repl
  path                Run a script from from a file or resource
  -                   Run a script from standard input
  -h, -?, --help      Print this help message and exit
 operation:
   - Establishes thread-local bindings for commonly set!-able vars
  - Enters the user namespace
  - Binds *command-line-args* to a seq of strings containing command line
    args that appear after any main option
  - Runs all init options in order
  - Calls a -main function or runs a repl or script if requested
 The init options may be repeated and mixed freely, but must appear before
any main option. The appearance of any eval option before running a repl
suppresses the usual repl greeting message: "Clojure ~(clojure-version)".
 Paths may be absolute or relative in the filesystem or relative to
classpath. Classpath-relative paths have prefix of @ or @/