Checkstyle 5.5

##### About

- Checkstyle
- Release Notes

##### Documentation

- Configuration
  - Property Types
- Running
  - Ant Task
  - Command Line
- Available Checks
- Standard Checks
  - Annotations
  - Block Checks
  - Class Design
  - Coding
  - Duplicate Code
  - Headers
  - Imports
  - Javadoc Comments
  - Metrics
  - Miscellaneous
  - Modifiers
  - Naming Conventions
  - Regexp
  - Size Violations
  - Whitespace
- Extending Checkstyle
  - Writing checks
  - Writing filters
  - Writing listeners

##### Developers

- Javadoc
- Project Page
- Contributing

##### Project Documentation

- Project Information
- Project Reports

## Description

This document describes how to run Checkstyle using the command line tool. The latest version of Checkstyle can be found at http://checkstyle.sourceforge.net. This command line tool is included in the Checkstyle distribution.

## Installation

The easiest way is to include `checkstyle-5.5-all.jar` in the classpath. Alternatively, you must include the `compile` third party dependencies listed in Project Dependencies in the classpath.

## Usage

The command line usage is:

    java -D<property>=<value>  \
         com.puppycrawl.tools.checkstyle.Main \
         -c <configurationFile> \
         [-f <format>] [-p <propertiesFile>] [-o <file>] \
         [-r <dir>] file...

Checkstyle will process the specified files and by default report errors to standard out in plain format. Checkstyle requires a configuration XML file that configures the checks to apply. Command line options are:

- `-c configurationFile` - specifies the location of the file that defines the configuration modules. The location can either be a filesystem location, or a name passed to the ClassLoader.getResource() method.
- `-f format` - specify the output format. Options are `"plain"` for the DefaultLogger and `"xml"` for the XMLLogger. Defaults to `"plain"`.
- `-p propertiesFile` - specify a properties file to use.
- `-o file` - specify the file to output to.
- `-r dir` - specify the directory to traverse for Java source files.

Note that the `-n packageNamesFile` option has been dropped for Checkstyle 5.0, because of significant changes regarding package name file handling. See for details.

Set the properties for expanded property values by either by assigning system properties using the `-D<property>=<value>` arguments to java or specifying a property file using the `-p` option. If a property file is specified, the system properties are ignored.

## Examples

Run checkstyle with configuration file `docs/sun_checks.xml` on a file

    java com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         Check.java

Run checkstyle with configuration file `docs/sun_checks.xml` on all java files in a directory

    java com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         -r src/

Run checkstyle with configuration file `docs/sun_checks.xml` on a file and provide a system property

    java -Dcheckstyle.cache.file=target/cachefile \
         com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         Check.java

Run checkstyle with configuration file `docs/sun_checks.xml` on a file and use properties in a file

    java com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         -p myCheckstyle.properties Check.java

Run checkstyle with configuration file `docs/sun_checks.xml` on a file and output to a file in XML format

    java com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         -f xml -o build/checkstyle_errors.xml Check.java

Run checkstyle with configuration file `docs/sun_checks.xml` on a file and provide a package names file

    java com.puppycrawl.tools.checkstyle.Main -c docs/sun_checks.xml \
         -n myPackageNames.xml Check.java

#### Tip

It is possible to run Checkstyle directly from the JAR file using the `-jar` option. An example would be:

    java -jar checkstyle-5.5-all.jar \
         -c docs/sun_checks.xml Check.java