How do I install this damn thing?

Packages of ANTLR available from the repositories of distributions like Ubuntu are quite old and probably worth avoiding.

Getting a proper Java virtual machine running

You can skip this step if you know Java is properly installed.

  1. Install a compatible Java virtual machine.
    • On Ubuntu or Debian Linux, you can install OpenJDK from the package manager:
      sudo apt-get install default-jdk
      
    • On other platforms, use either the Oracle/Sun distribution or OpenJDK.
  2. Check that your Java installation is working:
    java -version
    
    (tick) Expect output like the following (for OpenJDK on Ubuntu):
    java version "1.6.0_20"
    OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~10.04.1)
    OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
    

Installing ANTLR

  1. Visit the download page and download the "Complete ANTLR x.y Java binaries jar" file.
    • For example, from a Linux shell, download ANTLR 3.3 to your home directory:
      cd ~
      wget http://www.antlr.org/download/antlr-3.3-complete.jar
      
  2. Add ANTLR to your CLASSPATH environmental variable and run it:
    export CLASSPATH=~/antlr-3.3-complete.jar:$CLASSPATH
    java org.antlr.Tool -version
    
    (tick) Expect output like the following:
    ANTLR Parser Generator  Version 3.3 Nov 30, 2010 12:50:56
    
    (error) If you see output like the following, the CLASSPATH is not set up properly:
    Exception in thread "main" java.lang.NoClassDefFoundError
    
    (error) If you see an older version of ANTLR, your CLASSPATH may not be set up properly and Java may be finding ANTLR in .jar files bundled with an application like BEA WebLogic. Ensure the path to the current .jar of ANTLR is at the beginning of your CLASSPATH.
  3. Configure your CLASSPATH to include ANTLR on future logins.
    • For example, on a BASH shell, add the environmental variable to the .bashrc script:
      echo "export CLASSPATH=~/antlr-3.3-complete.jar:$CLASSPATH" >> ~/.bashrc