Building


Patience is required: Currently SquirrelJME is in active development and although it can run and produce binaries, there are limitations to consider. Currently only a limited set of programs may be ran on SquirrelJME.


SquirrelJME requires the following before it can be built:

Notes on Running

SquirrelJME uses a simplified error system which starts with a two capital letter prefix followed by two digits and letters.

Installing Java

SquirrelJME requires a Java 7 virtual machine in order to build itself.

Common Linux Distributions

If you use a common and popular Linux distribution it likely has a JDK available.

Oracle's JDK

Oracle's JDK supports the following (as of this writing):

Oracle's Java JDK can be downloaded from:

Ensure that you download and install the JDK.

If running on ReactOS/Windows/Wine, make sure that the PATH environment variables refers to the JDK's binary directory:

Bootstrap Build Environment

The main interaction with the SquirrelJME build environment is with the build bootstrapper which initializes, compiles, and runs the build environment.

System Specific

Each system has a different interface to the bootstrap environment, beyond this the remainder of it is the same regardless of the system used.

ReactOS and Windows

Oracle's Java JDK can be downloaded from:

The script used for building is build.cmd. This requires the command prompt which may be accessed by running cmd. This may be found in the start menu or may be accessed via Windows Key + R, typing cmd, then hitting enter.

Recommended setup for running the environment, assuming SquirrelJME source code is located in the example c:\users\stephanie\desktop\squirreljme:

UNIX-Like: Linux, Mac OS X, Solaris, BSD, etc.

The script used for building is build.sh.

Recommended setup for running the environment, assuming SquirrelJME source code is located in the example /home/stephanie/squirreljme:

Building Shaded SquirrelJME JARs

Shaded SquirrelJME JARs are standalone JARs which can run on an existing Java SE or Java ME system depending on which target it was built for. Generally these JARs are just packaged by themselves and include the entire set of libraries and applications from within SquirrelJME. These shaded JARs are usually intended for demo projects and such. The JARs additionally are pure Java code so they require a host Java VM. To contain the SquirrelJME environment, an implementation of a virtual machine is used which is capable of using and running the class library. This virtual machine has a speed penalty because it is running the Java byte code itself however it is a compatible environment.

Building of shaded JARs requires a host Linux system (or a compatible UNIX like system which can run the needed shell scripts). There are two flavors of bootstrap JARs which may be built:

For all instructions, it is assumed that the environment variable SQUIRRELJME is the directory where the source code has been extracted. It is recommended that an out-of-tree build is performed (this means building from another directory that is no in the SquirrelJME source tree).

Building for Java SE

This build requires a run-time that bridges what SquirrelJME needs with what Java SE provides, as such it must be specified in the build.

By default the output will be called squirreljme-javase.jar.

Building for Java ME

NOTE: If the shaded JAR is not running on SquirrelJME, some features will not be available for use. It should still run however.

By default the output will be called squirreljme-javame.jar.