Checker Framework logo

This page walks you through a simple example to show how to use a type-checker from the command line. It shows how the Nullness Checker can be used to prevent null pointer exceptions.

Outline

1. Spot the null pointer exception

Begin by viewing NullnessExample.java. (If you have not already, download the source files for the tutorial.) It is a simple Java program with an obvious null pointer exception.
public class NullnessExample {
    public static void main(String[] args) {
        Object myObject = null;
        System.out.println(myObject.toString());
    }
}

2. Run the Nullness Checker

Run the Nullness Checker to see how it can warn you about this error at compile time.

To run the Nullness Checker, run javac with command-line arguments -processor org.checkerframework.checker.nullness.NullnessChecker, as follows.

(Note: In this tutorial, the commands that you cut-and-paste to run on the command line appear in bold after a $ prompt.)
(Note: You should have already made javacheck an alias to the Checker Framework compiler.)

$ javacheck -processor org.checkerframework.checker.nullness.NullnessChecker NullnessExample.java

The following error will be produced.

NullnessExample.java:9: error: [dereference.of.nullable] dereference of possibly-null reference myObject
        System.out.println(myObject.toString());
                           ^
1 error

3. Correct the error

Edit the code to initialize the myObject variable to some non-null value.

public class NullnessExample {
    public static void main(String[] args) {
        Object myObject = new Object();
        System.out.println(myObject.toString());
    }
}

4. Re-run the Nullness Checker

$ javacheck -processor org.checkerframework.checker.nullness.NullnessChecker NullnessExample.java

No errors should be produced.

This was a very simple example to show how to use the Checker Framework from the command line. The next example is a little more complex.