Using jslint4java on the command line

jslint4java can be run as an executable jar file:

$ java -jar jslint4java-1.4.4.jar
Usage: jslint4java [options]
 file.js ...
  Options:    --adsafe    If adsafe should be enforced
    --bitwise   If bitwise operators should not be allowed
    --browser   If the standard browser globals should be predefined
    --cap       If upper case html should be allowed
    --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
    --eqeqeq    If === should be required
    --es5       If es5 syntax should be allowed
    --evil      If eval should be allowed
    --forin     If for in statements must filter
    --fragment  If html fragments should be allowed
    --help      Display usage information (default: false)
    --immed     If immediate invocations must be wrapped in parens
    --indent    The number of spaces used for indentation (default is 4)
    --jslint    Specify an alternative version of jslint.js
    --laxbreak  If line breaks should not be checked
    --maxerr    The maximum number of warnings reported (default is 50)
    --maxlen    Maximum line length
    --newcap    If constructor names must be capitalized
    --nomen     If names should be checked
    --on        If html event handlers should be allowed
    --onevar    If only one var statement per function should be allowed
    --passfail  If the scan should stop on first error
    --plusplus  If increment/decrement should not be allowed
    --predef    The names of predefined global variables.
    --regexp    If the . should not be allowed in regexp literals
    --report    Display report in different formats: plain, xml, junit and report (default: )
    --rhino     If the rhino environment globals should be predefined
    --safe      If use of some browser features should be restricted
    --strict    Require the "use strict"; pragma
    --sub       If all forms of subscript notation are tolerated
    --undef     If variables should be declared before used
    --white     If strict whitespace rules apply
    --widget    If the yahoo widgets globals should be predefined
    --windows   If ms windows-specigic globals should be predefined

using jslint version 2010-10-26

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-1.4.4.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), add it using an equals. For example:

$ cat happy.js
var x;
if (x) {
  x = 42;
}
$ java -jar jslint4java-1.4.4.jar --white happy.js
jslint:happy.js:2:2:Expected 'x' to have an indentation of 4 instead of 2.
$ java -jar jslint4java-1.4.4.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-1.4.4.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-1.4.4.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.