# Running Compiled Code from the Command Line

This section does not apply to code generated with the `-servlet` option.

The generated Java code has a main() method allowing it to be run directly from the command line. This is not the most efficient way of running a query, because of the overhead of starting up the Java runtime; but it is useful when testing, or to execute a long-running "batch" query.

The query is run in the same way as any other Java program:

java query-class [options] [keyword=value]...

Note that the classpath must include `saxon9sa.jar` as well as the directory in which the Saxon-SA license file is installed.

The options available on the command line are as follows:

Option | Meaning
-s source-file | XML source file to be assigned to the initial context node
-t | Display timing, version, and progress information
-o output-file | File to hold the serialized output of the query
-val | Apply strict schema validation to input files.
-vlax | Apply lax schema validation to input files

A keyword=value pair is used to supply the value of an external variable defined in the query prolog. If the variable name is in a namespace, the keyword should use Clark notation, that is "{uri}localname". The value is interpreted as an untypedAtomic value, and will be converted to the required type of the variable using the function conversion rules (for example if the variable `start` is declared as an integer, then the value can be supplied in the form `start=42`).

The notation `+keyword=filename` can be used to initialize an external variable to hold the document node of an XML document identified by the given filename.

The notation `!keyword=value` can be used to set serialization parameters. For example `!indent=yes` causes the output to be indented.

Note that there is no option on the command line to load additional schema documents. Schema components that are needed during query execution must be derived either from schema documents that were imported into the query at compile time, or must be referenced using `xsi:schemaLocation` in a source document.

Next