> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started: Development Environment

To develop on Atoti, you should have a computer with several cores, running either Linux or Windows 7+ 64-Bit.

The current version of Atoti Server is based on [Java 25](https://adoptium.net/temurin/releases/).
The path to your JDK root directory should be registered in the `JAVA_HOME` environment variable.
You can check your installation by running `java -version` in a new shell.

The project build is based on [Maven](http://maven.apache.org/download.cgi).
The path to your maven installation directory should be registered in the `M2_HOME` environment variable.
You can check your installation by running `mvn -v` in a new shell.

You can use your favorite IDE. If you don't have one, you can try [IntelliJ](https://www.jetbrains.com/idea/download/).

<Info>
  **A license file is required to activate any Atoti installation**
</Info>

To register your license check the [License page](license).

If you haven't done it yet, configure maven to [download](download) Atoti Server's artifacts from ActiveViam's JFrog.

<Warning>
  Many classes visible from Atoti jars are considered internal classes.<br />
  These internal classes are located in packages containing `internal`, `avinternal` or `private_`.<br />
  Examples:

  * `com.activeviam.database.sql.internal.schema.ISqlFieldDescription`, indicated by the "...sql.**internal**.schema..."
  * `com.activeviam.tech.dictionaries.avinternal.Dictionary`, indicated by the "...dictionaries.**avinternal**..."
  * `com.activeviam.database.bigquery.private_.BigqueryDataVersion`, indicated by the "...bigquery.**private\_**..."

  These classes can be changed at any point in time, without regard for backward compatibility, without warning, without mention in the changelog, and without migration notes.<br />
  Users must not use them. This will never be an issue as they are never exposed to users. The APIs always return their interfaces or wrap them. They are only visible through debuggers.
</Warning>
