Environment:Apache Dolphinscheduler Java Runtime
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Build_System |
| Last Updated | 2026-02-10 10:00 GMT |
Overview
Java 8 (JDK 1.8) runtime with Maven 3.x build system, Spring Boot 2.7.x, and Quartz 2.3.2 scheduler.
Description
Apache DolphinScheduler requires JDK 1.8 (Java 8) for both compilation and runtime. The project uses Maven as its build system with the Maven Compiler Plugin 3.3 targeting Java 1.8 source and target compatibility. The runtime stack is built on Spring Boot 2.7.11 with MyBatis-Plus 3.5.2 for ORM and Quartz 2.3.2 for cron-based workflow scheduling. Docker images use Eclipse Temurin 8 JRE as the base image.
Usage
Use this environment for all DolphinScheduler components: API Server, Master Server, Worker Server, and Alert Server. Every module in the project compiles against Java 8 and runs on a Java 8 JRE. This environment is a mandatory prerequisite for building from source or running any DolphinScheduler service.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux (recommended), macOS, Windows | Linux preferred for Epoll support in Netty |
| Java | JDK 1.8 (Java 8) | Eclipse Temurin recommended; source/target=1.8 |
| Build Tool | Maven 3.x | Maven Compiler Plugin 3.3 |
| CPU | 2+ cores minimum | Thread pools scale with available processors |
| Memory | 4GB+ JVM heap recommended | Master/Worker each need dedicated heap |
Dependencies
System Packages
- `java` = 1.8 (JDK or JRE)
- `maven` >= 3.3 (build only)
- `git` (for source checkout)
Java Dependencies (managed by Maven BOM)
- `spring-boot` = 2.7.11
- `mybatis-plus` = 3.5.2
- `quartz-scheduler` = 2.3.2
- `guava` = 31.1-jre
- `jackson` = 2.13.4
- `slf4j` = 1.7.36
- `logback` = 1.2.11
- `commons-lang3` = 3.17.0
- `commons-collections4` = 4.5.0
- `commons-io` = 2.19.0
- `auto-service` = 1.0.1 (SPI code generation)
- `protostuff` = 1.7.2 (serialization)
- `junit` = 5.9.0 (test only)
Credentials
No credentials are required for the Java runtime itself. Database and registry credentials are documented in the Database_Backend and ZooKeeper_Registry environment pages.
Quick Install
# Install JDK 8 (Ubuntu/Debian)
apt-get update && apt-get install -y openjdk-8-jdk
# Or use Eclipse Temurin
apt-get install -y wget apt-transport-https
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add -
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/adoptium.list
apt-get update && apt-get install -y temurin-8-jdk
# Build from source
mvn clean package -Prelease -Dmaven.test.skip=true
Code Evidence
Java version requirement from `pom.xml:68`:
<java.version>1.8</java.version>
Maven compiler configuration from `pom.xml:67-72`:
<spring.boot.version>2.6.1</spring.boot.version>
<java.version>1.8</java.version>
<maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
Docker base image from `.github/workflows/cluster-test/mysql_with_mysql_registry/Dockerfile:18`:
FROM eclipse-temurin:8-jre
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `Unsupported major.minor version 52.0` | Running on Java < 8 | Install JDK 1.8 |
| `source release 1.8 requires target release 1.8` | Maven compiler misconfigured | Set `1.8 |
| `Cannot find symbol: AutoService` | Missing annotation processor | Ensure `auto-service` 1.0.1 is in dependencies |
Compatibility Notes
- Java 11+: Not officially supported. The project explicitly targets Java 1.8 source/target. Some internal APIs used may be removed in later Java versions.
- GraalVM: Not tested or supported.
- ARM64: Eclipse Temurin provides ARM64 builds; DolphinScheduler should work but is not officially tested on ARM.
Related Pages
- Implementation:Apache_Dolphinscheduler_Maven_Plugin_Module_Setup
- Implementation:Apache_Dolphinscheduler_DataSourceProcessorManager_SPI_Loading
- Implementation:Apache_Dolphinscheduler_NettyRemotingServer_Setup
- Implementation:Apache_Dolphinscheduler_WorkflowEngine_Start
- Implementation:Apache_Dolphinscheduler_PhysicalTaskExecutor_Lifecycle