Building from source OR-Tools Java on Linux

Introduction

This guide explains how to build from source OR-Tools, with support for Java, on Linux.

Unless you plan to modify the source code or use a third-party solver with OR-Tools, we recommend the package installation.

Although these instructions might also work on other Linux variants, we have only tested them on machines meeting the following requirements:

  • Alpine Edge 64-bit (x86_64)
  • Centos 7 LTS 64-bit (x86_64)
  • Debian SID 64-bit (x86_64)
  • Debian 11 (bullseye) 64-bit (x86_64)
  • Fedora 38 64-bit (x86_64)
  • Fedora 37 64-bit (x86_64)
  • OpenSuse Leap 64-bit (x86_64)
  • Ubuntu 24.04 64-bit (x86_64)
  • Ubuntu 22.04 LTS 64-bit (x86_64)
  • Ubuntu 20.04 LTS 64-bit (x86_64)

Prerequisites

The following sections describe the prerequisites for installing OR-Tools.

C++ tools

To install C++ tools, open a terminal window and enter:

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

Centos

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

SWIG

To install SWIG, open a terminal window and enter:

Alpine

apk add swig

Centos

sudo yum install -y swig

Debian

sudo apt install -y swig

Fedora

sudo dnf install -y swig

Fedora

sudo dnf install -y swig

OpenSUSE

sudo zypper install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Java JDK >= 8.0

To install the Java JDK version 8.0 or higher, open a terminal window and enter:

Alpine

sudo apk add openjdk8
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk

Centos

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

Debian

sudo apt install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

OpenSUSE

sudo zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Maven >= 3.3

To install Maven version 3.3 or higher, open a terminal window and enter:

Alpine

sudo apk add maven

Centos

sudo yum install -y maven

Debian

sudo apt install -y maven

Fedora

sudo dnf install -y maven

Fedora

sudo dnf install -y maven

OpenSUSE

sudo zypper install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

You can test Maven is correctly installed and can find java using the following command:

mvn -v

Download the source code

There are two distinct branches of the OR-Tools source code on GitHub: stable and main.

The stable branch has been thoroughly tested and should work flawlessly on all supported platforms.
The main branch is where the latest updates and improvements have been applied; it's more current, but less stable.

Download the stable source code

You can get the stable source code for OR-Tools in either of the following ways:

  • Clone the stable branch by entering:

    git clone https://github.com/google/or-tools
  • Download the latest release in a compressed file, by clicking the Clone or download button in GitHub. image of clone or download button

Download the main source code

To retrieve the source code from the main branch, enter:

git clone -b main https://github.com/google/or-tools

Download previous releases

You can get the source code for previous releases in either of the following ways:

  • Download a previous release from the GitHub release page.
  • Assuming you have already created a local repository (by git clone), you can check out a specific release using a Git tag. For example, to work with the v9.11 release instead of the main branch, enter the following commands in your local repo:

    git fetch --all --tags --prune
    git checkout tags/v9.11 -b v9.11

Configure the build

Before building OR-Tools, you'll need to configure the CMake build system generator.

Open a terminal and navigate to the directory where you extracted the files. Then enter:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

Checkout the CMake documentation for details.

Using SCIP

Since v7.8, SCIP is now integrated so you won't have to install it manually.

Using Gurobi

Gurobi is now pre-integrated. When needed, at runtime, OR-Tools will search for the Gurobi shared library in the default install path of the Gurobi installers on MAC OS X and Windows, or by using the GUROBI_HOME environment variable.

Using an optional third-party MIP solver

You can also use OR-Tools with any of the following optional third-party MIP solvers whose support is disabled by default:

Please take a look at this documentation for details.

Build the source code

To build the source code, open a terminal and navigate to the directory where you extracted the files. Then enter the following command to compile OR-Tools:

cmake --build build --config Release --target all -j -v

Checkout the CMake documentation for details.

Test the source code

You can check that everything is running correctly by entering:

cmake --build build --config Release --target test -v

This runs examples for OR-Tools. If all the examples run successfully, you are ready to get started with OR-Tools.

Cleaning the build files

If you need to re-install OR-Tools, the command:

rm -r build

will remove all compiled dependencies. This can be useful for resetting to a clean state.

Then re-enter the commands:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

cmake --build build --config Release --target all -j -v

Installing OR-Tools on your operating system

You can install OR-Tools for Java on your operating system by entering:

cmake --build build --config Release --target install -v