# YAAC Command-Line Options

There are several options that can be specified on the Java command line when launching YAAC to modify its operation, in addition to standard JVM options. The YAAC-specific options appear on the command line after the -jar YAAC.jar part of the command.

`java [-JVM_options] -jar YAAC.jar [-YAAC_options]`

The most obvious JVM options relevant to YAAC are the `-Xmx` and `-D` options. The former specifies the maximum amount of heap memory Java is allowed to use. For YAAC, this typically should be at least 256m (256 megabytes), and at least 1024 megabytes when importing/compiling the whole-planet OpenStreetMap file. Smaller amounts can be used for tiny systems like the Raspberry Pi if the amount of incoming data (and/or persistence time thereof) is limited.

There are a few YAAC-specific JVM system properties that can be defined with the `-D` option to override certain defaults (primarily in the OpenStreetMap importer logic), using the `-Dpropertyname=value` syntax.

property name | value meaning
--- | ---
`alt.tile.dir` | Specifies the path to a directory where scratch index files for OpenStreetMap data importing are stored. By default, such files are stored in the configured tile directory; this option should be used when another physical disk is available for the scratch files, so that importing will not be slowed by excessive disk head seeks.
`dated.tile.dir` | Specify when using the File->OpenStreetMap->Download PreImported Tiles command that a different subdirectory on the YAAC author's website should be used to download tiles. By default, the author makes pre-imported tile files available in the `tiledir` subdirectory at the URL `http://www.ka2ddo.org/ka2ddo/`
`dont.purge.temp` | If the value is "true", don't delete the temporary files when the import is completed. By default, the several gigabytes (potentially) of scratch files are deleted when the import completes.
`generate.named.bbox.file` | If the value is "true", generate an additional debugging file during OSM import which logs all map bounding boxes at various geopolitical levels.
`keep.unrenderable.osm.attributes` | If the value is "true", don't discard certain OpenStreetMap attributes that are helpful in analyzing the OSM data but are not actually used in rendering the map. This will cause generated tile files to be somewhat larger, due to preserving the additional attributes, and will therefore negatively impact OSM rendering times.
`skip.osm.xml.parse` | If the value is "true", go directly to the sorting of imported tiles, skipping the XML parsing step. This is useful to preserve work if YAAC is shut down after XML parsing is complete but before the generated tiles are sorted and moved in place of previous versions of the operational `.ways` and `.nodes` files.

The command-line options specific to YAAC are:

option name | meaning
--- | ---
`-clear` | Erase all of the YAAC configuration data for this profile; if for the nameless profile, erase everything. YAAC will behave as if it was newly installed on a clean system, offering the option of running the configuration wizard to initially configure YAAC.
`-clearObjects` | Erase all persisted object definitions originated by this copy of YAAC.
`-clearPorts` | Erase all of the interface port definitions (TNCs, GPSs, weather stations, APRS-IS connections, etc.). YAAC will ask if you want to run the configuration wizard to define new ports.
`-clearWindows` | Erase all of the memorized positions and sizes of different window types in YAAC, and let the operating system window manager and YAAC use default placements and sizes.
`-debug` | Turn on extra tracing messages in the YAAC error log. May impair YAAC's performance due to the extra logging.
`-gui` | Force YAAC to try to use a GUI display. By default, YAAC will attempt to open the graphical windows if a graphical environment is available (on Microsoft Windows and Macintosh OS X, or on Linux and Unix systems where an X server is available).
`-nogui` | Force YAAC to run without a GUI. Not all functionality will be available. Useful when using YAAC as a stand-alone digipeater or I-gate where a screen is not available or needed.

`-profile` profilename

Run YAAC with the named alternate named configuration profile. By default, YAAC will use the configuration stored in the nameless profile. The name is arbitrary, and can consist of letters, numbers, underscores, hyphens, and a few other punctuation characters; if spaces are used in the name, the name may need to be quoted to prevent the shell from ignoring the part of the name after the first space.

`-storepass` password | Specify the password for opening the keystore. Necessary when running in -nogui mode when using the SSL APRS-IS port driver, where the authentication credentials must be extracted from the keystore.
`-tempTileDir` tiledir_path | Specify a non-configured path to the directory tree where compiled OpenStreetMap tile files and USGS SRTM terrain files are stored. Typically used only on CD-ROM/DVD distributions of YAAC, so that map data can be provided on the distribution medium.