Command line and environment **************************** The Jython interpreter scans the command line and the environment for various settings. Note: Other implementations' command line schemes may differ. See *Alternate Implementations* for further resources. Command line ============ When invoking Jython, you may specify any of these options: jython [-c command | -m module-name | script | - ] [args] The most common use case is, of course, a simple invocation of a script: jython myscript.py Interface options ----------------- The interpreter interface resembles that of the UNIX shell, but provides some additional methods of invocation: * When called with standard input connected to a tty device, it prompts for commands and executes them until an EOF (an end-of-file character, you can produce that with *Ctrl-D* on UNIX or *Ctrl-Z, Enter* on Windows) is read. * When called with a file name argument or with a file as standard input, it reads and executes a script from that file. * When called with a directory name argument, it reads and executes an appropriately named script from that directory. * When called with ``-c command``, it executes the Python statement(s) given as *command*. Here *command* may contain multiple statements separated by newlines. Leading whitespace is significant in Python statements! * When called with ``-m module-name``, the given module is located on the Jython module path and executed as a script. In non-interactive mode, the entire input is parsed before it is executed. An interface option terminates the list of options consumed by the interpreter, all consecutive arguments will end up in ``sys.argv`` -- note that the first element, subscript zero (``sys.argv[0]``), is a string reflecting the program's source. -c Execute the Jython code in *command*. *command* can be one ore more statements separated by newlines, with significant leading whitespace as in normal module code. If this option is given, the first element of ``sys.argv`` will be ``"-c"`` and the current directory will be added to the start of ``sys.path`` (allowing modules in that directory to be imported as top level modules). -m Search ``sys.path`` for the named module and execute its contents as the ``__main__`` module. Since the argument is a *module* name, you must not give a file extension (``.py``). The ``module-name`` should be a valid Jython or Python module name, but the implementation may not always enforce this (e.g. it may allow you to use a name that includes a hyphen). If this option is given, the first element of ``sys.argv`` will be the full path to the module file. As with the *-c* option, the current directory will be added to the start of ``sys.path``. Many standard library modules contain code that is invoked on their execution as a script. An example is the ``timeit`` module: jython -mtimeit -s 'setup here' 'benchmarked code here' jython -mtimeit -h # for details See also: ``runpy.run_module()`` The actual implementation of this feature. **PEP 338** -- Executing modules as scripts