A fork of JLine for the Scala Compiler

This repository contains a fork of JLine for the Scala compiler. The reason for using a fork is to avoid polluting the classpath of programs that embed the Scala compiler or REPL. This fork therefore changes the package name for JLine to scala.tools.jline.

Releases of this fork are under the group id "org.scala-lang.modules" % "scala-jline".


The patches applied to this fork can be inspected here. Take a look at the individual commit messages for commands that were used to create the patch.

Note that the .java source files are not moved to folders representing the new package name. This simplifies integrating changes from the upstream repository. Resource files (src/main/resources, src/test/resources) on the other hand needed to be moved so that they are copied to the right target directory.


The master branch in this fork is always kept in synch with the upstream master branch. The patches for re-packaging are in the scala-jline branch.


The upstream repository uses tags of the form jline-2.12.1. For our releases of scala-jline, we are using tags of the form v2.12.1. These tags mark revisions in the scala-jline branch.

When building a v-shaped tag, the travis build script stages a release on sonatype.

Upstream README


JLine is a Java library for handling console input. It is similar in functionality to BSD editline and GNU readline. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar.

JLine 2.x is an evolution of JLine 1.x which was previously maintained at SourceForge.


JLine is distributed under the BSD License, meaning that you are completely free to redistribute, modify, or sell it with almost no restrictions.



Maven Usage

Use the following definition to use JLine in your maven project:




  • Maven 2+
  • Java 5+

Check out and build:

git clone git://github.com/jline/jline2.git
cd jline2
mvn install