# JDK version for OnTime (User, Driver, Merchant) ## Required: **JDK 17** or **JDK 21** The project uses: - **Gradle 8.9** (gradle-wrapper) - **Android Gradle Plugin 8.5.0** (User app; Driver/Merchant use similar) - **App source/target:** Java 11 (Driver, Merchant); User follows Gradle default Android Gradle Plugin 8.x needs **JDK 17** or newer. Use **JDK 17** or **JDK 21**. --- ## Install JDK ### macOS (Homebrew) ```bash # JDK 17 (LTS) brew install openjdk@17 # Or JDK 21 brew install openjdk@21 ``` Then link and set `JAVA_HOME` (add to `~/.zshrc` or `~/.bash_profile`): ```bash # For JDK 17 export JAVA_HOME="$(/usr/libexec/java_home -v 17 2>/dev/null || echo /opt/homebrew/opt/openjdk@17)" export PATH="$JAVA_HOME/bin:$PATH" ``` ### macOS (manual) 1. Download **JDK 17** or **21** from [Adoptium](https://adoptium.net/) or [Oracle](https://www.oracle.com/java/technologies/downloads/). 2. Install the `.pkg`. 3. Set `JAVA_HOME`, e.g. for Adoptium 17 on Apple Silicon: ```bash export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home ``` ### Windows 1. Download **JDK 17** or **21** from [Adoptium](https://adoptium.net/). 2. Run the installer and note the install path (e.g. `C:\Program Files\Eclipse Adoptium\jdk-17`). 3. Set environment variables: - `JAVA_HOME` = that path - Add `%JAVA_HOME%\bin` to `Path`. ### Linux (apt) ```bash # JDK 17 sudo apt update sudo apt install openjdk-17-jdk # Or JDK 21 sudo apt install openjdk-21-jdk ``` Set `JAVA_HOME` if needed (e.g. in `~/.bashrc`): ```bash export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH="$JAVA_HOME/bin:$PATH" ``` --- ## Check version ```bash java -version javac -version ``` You should see version **17** or **21**. --- ## Android SDK (required for building) Gradle needs the Android SDK path. Either: 1. **Set `ANDROID_HOME`** (recommended): ```bash export ANDROID_HOME=$HOME/Library/Android/sdk # macOS default export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools ``` 2. **Or use `local.properties`** in each app folder (already created if you opened the project): - `OnTime_User_live/local.properties` - `OnTime_Driver_live/local.properties` - `OnTime_Merchant_live/local.properties` Each should contain: ```properties sdk.dir=/Users/YOUR_USERNAME/Library/Android/sdk ``` Replace `YOUR_USERNAME` with your macOS username, or use the path where Android Studio installed the SDK (e.g. Windows: `C:\\Users\\You\\AppData\\Local\\Android\\Sdk`). If the SDK is in a different location, edit `sdk.dir` in each `local.properties` or set `ANDROID_HOME` to that path. --- Then build the apps: ```bash ./build-debug-apks.sh ``` Or open **OnTime_User_live**, **OnTime_Driver_live**, or **OnTime_Merchant_live** in Android Studio (it will use the JDK configured in **File → Settings → Build → Build Tools → Gradle**).