Using jslint4java on the command line

jslint4java can be run as an executable jar file:

$ java -jar jslint4java-2.0.2.jar
Usage: jslint4java [options]
 file.js ...
  Options:
        --adsafe     If adsafe rules should be enforced
        --bitwise    If bitwise operators should be allowed
        --browser    If the standard browser globals should be predefined
        --cap        If upper case html should be allowed
        --confusion  If types can be used inconsistently
        --continue   If the continuation statement should be tolerated
        --css        If css workarounds should be tolerated
        --debug      If debugger statements should be allowed
        --devel      If logging should be allowed (console, alert, etc.)
        --encoding   Specify the input encoding
        --eqeq       If == should be allowed
        --es5        If es5 syntax should be allowed
        --evil       If eval should be allowed
        --forin      If for in statements need not filter
        --fragment   If html fragments should be allowed
        --help       Display usage information
                     Default: false
        --indent     The indentation factor
        --jslint     Specify an alternative version of jslint.js
        --maxerr     The maximum number of errors to allow
        --maxlen     The maximum length of a source line
        --newcap     If constructor names capitalization is ignored
        --node       If node.js globals should be predefined
        --nomen      If names may have dangling _
        --on         If html event handlers should be allowed
        --passfail   If the scan should stop on first error
        --plusplus   If increment/decrement should be allowed
        --predef     The names of predefined global variables
        --regexp     If the . should be allowed in regexp literals
        --report     Display report in different formats: plain, xml, junit,
                     checkstyle and report
        --rhino      If the rhino environment globals should be predefined
        --safe       If use of some browser features should be restricted
        --sloppy     If the 'use strict'; pragma is optional
        --sub        If all forms of subscript notation are tolerated
        --timeout    Maximum number of seconds JSLint can run for
                     Default: 0
        --undef      If variables can be declared out of order
        --unparam    If unused parameters should be tolerated
        --vars       If multiple var statements per function should be allowed
        --white      If sloppy whitespace is tolerated
        --widget     If the yahoo widgets globals should be predefined
        --windows    If ms windows-specific globals should be predefined

using jslint version 2011-06-11

The list of options is (mostly) derived from the Option enum. For fuller documentation of each option, see the jslint web site.

You must pass a number of javascript files on the command line. For each one, jslint4java will produce a list of errors on stdout. If any errors are found, an exit code of 1 will be returned.

Sample error output:

$ cat dodgy.js
someVar = 42
$ java -jar jslint4java-2.0.2.jar dodgy.js
jslint:dodgy.js:0:12:Missing semicolon.
$

The fields are colon separated and consist of:

  1. The fixed string "jslint"
  2. The filename
  3. The line number
  4. The column number
  5. The error

Most command line flags are boolean. If you wish to pass a value to a flag (e.g. --indent), it must be separated by whitespace. For example:

$ cat happy.js
var x;
if (x) {
  x = 42;
}
$ java -jar jslint4java-2.0.2.jar --white happy.js
jslint:happy.js:2:2:Expected 'x' to have an indentation of 4 instead of 2.
$ java -jar jslint4java-2.0.2.jar --white --indent 2 happy.js
$

To pass a list of predefined global variables, give a comma separated list of names to --predef, e.g.

$ cat globals.js
foo(bar(42));
$ java -jar jslint4java-2.0.2.jar --undef globals.js
jslint:globals.js:1:1:'foo' is not defined.
jslint:globals.js:1:5:'bar' is not defined.
$ java -jar jslint4java-2.0.2.jar --undef --predef foo,bar globals.js
$

Additional Options

--help produces the usual display of information.

If your file is in an alternative encoding, that can be specified with the --encoding flag. This value is passed directly to Charset.forName(), so any encoding supported by your Java VM is allowed. If no encoding is specified, the platform default is used. <subliminal>Use UTF-8! Use UTF-8!</subliminal>

You may request an alternative form of reporting using the --report flag.

--report Description
plain A more verbose plain text format, which shows the line of code on which the error occurs, as well as highlighting the position of the error within that line.
junit Produce an XML file similar to that of the ant junit task. This is a good choice for integrating with third-party systems.
report JSLint will produce an HTML report on your code, including a list of all functions.
xml A custom XML format, with one element per error. You should prefer the JUnit output format if possible.

You can specify an alternative jslint.js in case the version supplied doesn't suit you (for example there is a newer version available). To use another jslint, specify --jslint /some/where/jslint.js on the command line.