## Command Line Options for Generated Installers |

Installers generated by install4j recognize the following command line parameters:

Name | Explanation
--- | ---
-manual | This option applies to Microsoft Windows only. The default JRE search sequence will not be performed and bundled JREs will not be used either. The installer will act as if no JRE has been found at all and display the dialog that lets you choose a JRE or download one if a JRE has been bundled dynamically. If you locate a JRE, it will be used for the installed application. On Unix, you can define the environment variable INSTALL4J_JAVA_HOME_OVERRIDE instead to override the default JRE search sequence.
-c | Executes the installer in the console mode.
-q | Executes the installer in the unattended mode.
-console | If the installer is executed in unattended installation mode and -console is passed as a second parameter, a console will be allocated on Windows that displays the output of the installer.
-overwrite | Only valid if `-q` is set. In the unattended installation mode, the installer will not overwrite files where the overwrite policy would require it to ask the user. If `-overwrite` is set, all such files will be overwritten.
-dir [directory] | Only valid if `-q` is set. Sets a different installation directory for the unattended installation mode. The next parameter must be the desired installation directory.
-Dinstall4j.nolaf=true | Do not set the native look and feel but use the default. In some very rare cases, the Windows look and feel with the classic theme (Windows 2000-like appearance) on Windows XP is broken and prevents the use of the installer or any other Java GUI application. Switching to the default XP theme solves this problem. Alternatively, passing this parameter to the installer will prevent the native look from being set.
-Dinstall4j.debug=true | By default, install4j catches all exceptions, creates a "crash log" and informs the user about the location of that log file. This might be inconvenient when debugging an installer, so this system property switches off the default mechanism and exceptions are printed to stderr. In addition, install4j prints informative messages to stdout each time an installer variable is set. To dump all installer variables to stdout, you can use `com.install4j.api.Util.dumpVariables(Context context)` independently of this system property.
-Dinstall4j.keepLog=true | install4j creates a log file prefixed `i4j_log` for all installations and uninstallation in your temp directory. If your installer contains an "Install files" action and terminates successfully the log file is copied to `[installation dir]/.install4j/installation.log`, otherwise it will be deleted after the installer or uninstaller terminates by default. With this option, the log file won't be deleted. The log can be helpful for debugging purposes.
-Dinstall4j.logToStderr=true | In addition to the log file created by the installer or uninstaller, you can duplicate all log messages to stderr with this argument.
-Dinstall4j.logEncoding=[character set name] | By default, the installer will write the log file in the default encoding of the system where the installer is running. Should you wish to choose a different encoding you can pass this VM parameter to the installer. Some common character set names are UTF-8 ISO-8859-1 US-ASCII UTF-16LE UTF-16 Most JREs support a large number of charsets. You can execute `java.nio.charset.Charset.availableCharsets()` to check the names of supported character sets for your JRE.
-D`propertyName`=`value` | You can set further arbitrary system properties with the standard command line parameter.
-V`variableName`=`value` | You can set arbitrary installer variables with the -V parameter. The variable name should be used without prefix, so if you have a variable called ${installer:variableName} in the GUI the parameter would be -VvariableName=value. The variable will be a String object.
-varfile [fileName] | Alternatively, you can specify a property file containing the variables you want to set. The variable names should be used without prefix, too, so if you have a variable called ${installer:variableName} in the GUI the entry would be variableName=value. The variables will be String objects. This option shares the same mechanism with response files.