#java-development-kit
Google Agent Development Kit for Kotlin Reaches Feature Parity with Python, Supports On-Device AI

Google has released the Agent Development Kit (ADK) for Kotlin 1.0, a production-ready framework for building AI agents across Kotlin, Android, and JVM/server application…

Telegram AI Digest
#ai #news
Google Agent Development Kit for Kotlin Reaches Feature Parity with Python, Supports On-Device AI
Google has released the Agent Development Kit (ADK) for Kotlin 1.0, a production-ready framework for building AI agents across Kotlin, Android, and JVM/server applications. It brings Kotlin to feature parity with Google's ADK for Python and Java, while adding Android-specific capabilities for on-device and hybrid AI. By Sergio De Simone
www.infoq.com
September 21, 2026 at 2:16 AM
#Google has released version 1.0 of its #Agent #Development Kit for Kotlin. The release brings the Kotlin implementation to feature parity with the #Python and #Java #ADK cores, according to the announcement on the Google #Developers Blog.

www.minaxlab.com/blog/adk-kot...
ADK for Kotlin 1.0 Brings AI Agents to Android
Google’s ADK for Kotlin 1.0 brings type-safe, multi-agent development to Kotlin, Android, and Kotlin Multiplatform.
www.minaxlab.com
September 16, 2026 at 9:13 AM
Phoenix now supports Google's Agent Development Kit for Java.
September 15, 2026 at 10:02 PM
Google veröffentlicht ADK for Kotlin 1.0 mit Feature-Parität zu Python/Java. Ermöglicht produktionsreife Multi-Agent-Systeme in Kotlin Multiplatform-Umgebungen ohne Sprachwechsel.
Announcing ADK for Kotlin 1.0: Building Production-Ready AI Agents in Kotlin, Android, and Beyond
Google has officially released version 1.0 of the Agent Development Kit (ADK) for Kotlin, achieving full feature parity with the Python and Java ADK cores to enable idiomatic, multi-agent AI development. Built on Kotlin Multiplatform (KMP)…
developers.googleblog.com
September 12, 2026 at 6:10 AM
It’s been a busy week in the #Java ecosystem ➤ The GA release of TornadoVM 6.0; point releases of JReleaser, LangChain4j, Java Operator SDK, JHipster, Kotlin Toolchain and Yupiik Fusion; and maintenance releases of Micronaut and GraalVM Development Kit.

🔗 #InfoQ News Roundup: buff.ly/W01plzL
September 10, 2026 at 8:20 AM
TornadoVM 6.0.0 and multiple Java ecosystem point and maintenance releases shipped, including Micronaut 5.1.3 and GraalVM Development Kit 5.1.3, plus JDK 27/28 early-access builds.
Save What Matters
Curate Feeds | Make Collections | Customize Email Briefs
briefly.co
September 7, 2026 at 5:11 AM
TornadoVM 6.0.0 and multiple Java ecosystem point and maintenance releases shipped, including Micronaut 5.1.3 and GraalVM Development Kit 5.1.3, plus JDK 27/28 early-access builds.
Save What Matters
Curate Feeds | Make Collections | Customize Email Briefs
briefly.co
September 7, 2026 at 5:10 AM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
September 6, 2026 at 1:00 PM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
September 4, 2026 at 4:00 AM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
September 1, 2026 at 6:00 AM
Försöker jobba från hotellet. Annonserad Wifi är 500Mbps. Jag får 20kB/s till VPN:et och genom det kräver byggkedjan att jag ska hämta "senaste" (21..) versionen av Java Development Kit.

Jag tror jag tar en promenad, faktiskt.
August 14, 2026 at 2:51 AM
Updated the ClimateTrace CMP sample (github.com/joreilly/Cli...) to use the Kotlin version of Google's AI Agent Development Kit (adk.dev/get-started/...).

The project had previously consumed the Java version of ADK but much cleaner now with Kotlin version! Also still includes a Koog AI agent.
August 9, 2026 at 5:07 PM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
August 1, 2026 at 10:00 PM
Installing Apache Hadoop 3.4.2 on Linux 2026 (Single Node Cluster) Complete Step-by-Step Guide
## S1. Update the System Before installing Hadoop, update your system packages. sudo apt update sudo apt upgrade -y ## S2. Install and Configure Java 21 Apache Hadoop is written in Java and requires a compatible Java Runtime Environment (JRE) and Java Development Kit (JDK). This guide uses **OpenJDK 21 (LTS)**. ## Java Compatibility Installed Java Version | Action ---|--- Java 21 | Continue with the installation Java 17 | May work with some Hadoop versions, but this guide uses Java 21 Java 22–25 | Install Java 21 and switch to it Java Not Installed | Install OpenJDK 21 ### S2.1 Check if Java is Installed java -version javac -version #### If Java is NOT Installed Install OpenJDK 21. sudo apt update sudo apt install openjdk-21-jdk -y Verify the installation. java -version javac -version #### If Java is Already Installed Check the installed version. java -version javac -version Compare the output with the compatibility table above. If Java 21 is already active, continue to the next step. Otherwise, switch to Java 21. ### S2.2 List All Installed Java Versions update-java-alternatives -l Example: java-1.17.0-openjdk-amd64 java-1.21.0-openjdk-amd64 ### S2.3 Switch to Java 21 sudo update-alternatives --config java sudo update-alternatives --config javac Select the option corresponding to **Java 21**. ### S2.4 Verify the Active Java Version java -version javac -version Both commands should display **Java 21**. ### S2.5 Find the Correct JAVA_HOME Different Linux distributions may install Java in different directories. Instead of copying someone else's path, determine it automatically. readlink -f $(which java) Example: /usr/lib/jvm/java-21-openjdk-amd64/bin/java Therefore, JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 > **Note:** Never blindly copy the `JAVA_HOME` path from a tutorial. Always determine it using the command above. ## S3. Download Apache Hadoop 3.4.2 Move to the directory where you want to download Hadoop. cd ~/Downloads Download Hadoop from the official Apache Archive. wget https://archive.apache.org/dist/hadoop/common/hadoop-3.4.2/hadoop-3.4.2.tar.gz Verify the download. ls -lh hadoop-3.4.2.tar.gz Expected output: -rw-r--r-- 1 user user 734M hadoop-3.4.2.tar.gz ## S4. Extract and Install Hadoop After downloading the Hadoop archive, the next step is to extract it and install Hadoop on your system. In this guide, Hadoop will be installed under **`/opt/hadoop`** , which is the standard location for optional third-party software on Linux. ### S4.1 Extract the Archive Move to the directory where the archive was downloaded. cd ~/Downloads Extract the archive. tar -xvzf hadoop-3.4.2.tar.gz This will create a directory named: hadoop-3.4.2 Verify the extraction. ls Expected output: hadoop-3.4.2 hadoop-3.4.2.tar.gz ### S4.2 Move Hadoop to /opt Move the extracted directory to `/opt`. sudo mv hadoop-3.4.2 /opt/hadoop ### S4.3 Verify the Installation Directory Check that Hadoop has been moved successfully. ls /opt Expected output: hadoop View the contents of the Hadoop directory. ls /opt/hadoop Expected output: bin etc include lib libexec licenses sbin share NOTICE.txt README.txt ... ### S4.4 Change Ownership By default, the Hadoop directory is owned by the root user because it was moved using `sudo`. Change the ownership so your user can modify the configuration files without requiring root privileges every time. sudo chown -R $USER:$USER /opt/hadoop Verify the ownership. ls -ld /opt/hadoop Example output: drwxr-xr-x <username> <username> ... ### S4.5 Verify the Hadoop Version Run the Hadoop executable directly. /opt/hadoop/bin/hadoop version Expected output: Hadoop 3.4.2 Source code repository ... Compiled by ... At this point, Hadoop has been successfully installed on the system. However, it cannot yet be executed from any directory because its binaries have not been added to the system's PATH. > **Note:** We are intentionally using the full path (`/opt/hadoop/bin/hadoop`) for now. In the next section, we will configure environment variables so that the `hadoop`, `hdfs`, and `yarn` commands can be run from anywhere in the terminal. ## S5. Configure Environment Variables After installing Hadoop, we need to configure environment variables. These variables tell the operating system where Hadoop and Java are installed, allowing Hadoop commands to be executed from any directory. The main environment variables are: Variable | Purpose ---|--- `JAVA_HOME` | Points to the Java installation directory `HADOOP_HOME` | Points to the Hadoop installation directory `HADOOP_CONF_DIR` | Specifies the Hadoop configuration directory `PATH` | Allows Hadoop commands to be executed from anywhere ### S5.1 Check Your Default Shell Before editing your shell configuration, determine which shell you are using. echo $SHELL Possible outputs: /bin/bash or /bin/zsh ### S5.2 Open the Shell Configuration File ### If you are using Bash nano ~/.bashrc ### If you are using Zsh nano ~/.zshrc ### S5.3 Add the Hadoop Environment Variables Append the following lines to the end of the file. # Java export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) # Hadoop export HADOOP_HOME=/opt/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # Hadoop Components export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME # Native Libraries export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native # PATH export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ### Why use `$(dirname $(dirname $(readlink -f $(which java))))`? Instead of hardcoding the Java installation path, this command automatically determines the correct `JAVA_HOME` directory. This makes the guide more portable across different Linux distributions and Java installation methods. ### S5.4 Save the File For Nano: * Press **Ctrl + O** * Press **Enter** * Press **Ctrl + X** ### S5.5 Reload the Configuration ### Bash source ~/.bashrc ### Zsh source ~/.zshrc ### S5.6 Verify the Environment Variables Check that Hadoop is configured correctly. echo $JAVA_HOME Example: /usr/lib/jvm/java-21-openjdk-amd64 Check the Hadoop installation directory. echo $HADOOP_HOME Expected output: /opt/hadoop Check the configuration directory. echo $HADOOP_CONF_DIR Expected output: /opt/hadoop/etc/hadoop ### S5.7 Verify Hadoop Commands You should now be able to run Hadoop commands from any directory. Check the Hadoop version. hadoop version Check the HDFS version. hdfs version Check the YARN version. yarn version Each command should report **Hadoop 3.4.2**. > **Note:** If any of these commands return `command not found`, ensure that the shell configuration file has been reloaded using the `source` command or open a new terminal session. ## S6. Configure Passwordless SSH Apache Hadoop uses SSH to start and stop its daemons. Even in a single-node cluster, passwordless SSH is required for Hadoop scripts such as `start-dfs.sh` and `start-yarn.sh`. ### S6.1 Check if OpenSSH is Installed Run the following command: ssh -V If OpenSSH is installed, you will see output similar to: OpenSSH_10.x If the command is not found, install the OpenSSH server. sudo apt update sudo apt install openssh-server -y ### S6.2 Start and Enable the SSH Service Start the SSH service. sudo systemctl start ssh Enable it to start automatically on boot. sudo systemctl enable ssh Check the service status. sudo systemctl status ssh The status should show **active (running)**. Exit the status screen by pressing **Q**. ### S6.3 Generate an SSH Key Pair If you do not already have an SSH key, generate one. ssh-keygen -t rsa -b 4096 When prompted for the file location, simply press **Enter** to accept the default location. When prompted for a passphrase, press **Enter** twice to leave it empty. Example: Enter file in which to save the key: /home/<username>/.ssh/id_rsa ### S6.4 Enable Passwordless SSH Append the public key to the authorized keys file. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys Set the correct permissions. chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ### S6.5 Test the SSH Connection Run: ssh localhost The first time you connect, you may see: Are you sure you want to continue connecting (yes/no)? Type: yes If everything is configured correctly, you will be logged into your own machine without entering a password. Exit the SSH session. exit ### Why is Passwordless SSH Required? Hadoop's management scripts use SSH to launch and stop services such as the NameNode, DataNode, ResourceManager, and NodeManager. Without passwordless SSH, these scripts will repeatedly prompt for a password, making automated startup impossible. ## S7. Create Hadoop Data Directories Hadoop requires a few directories to store its metadata and temporary files. These directories are referenced by the Hadoop configuration files. Create the required directories by running the following commands: mkdir -p ~/hadoopdata/namenode mkdir -p ~/hadoopdata/datanode mkdir -p ~/hadooptmp You can verify that the directories were created successfully using: tree -L 2 ~ If the `tree` command is not installed, install it using: sudo apt install tree -y Expected output: /home/<username> ├── hadoopdata │ ├── datanode │ └── namenode └── hadooptmp > **Note:** The directory names must match the paths specified in the Hadoop configuration files (`core-site.xml` and `hdfs-site.xml`). If you changed those paths, create the directories accordingly. ## S8. Install the Hadoop Configuration Files Instead of manually editing multiple Hadoop configuration files, use the installation script provided in the GitHub repository. The script downloads and installs all the required configuration files automatically. Download the installation script. wget https://raw.githubusercontent.com/itsadityapidurkar/hadoop-installation-guide/main/linux/install-configs.sh Make the script executable. chmod +x install-configs.sh Run the script. ./install-configs.sh The script downloads and installs the following configuration files: * `core-site.xml` * `hdfs-site.xml` * `mapred-site.xml` * `yarn-site.xml` * `workers` These files are automatically copied to: /opt/hadoop/etc/hadoop If the script completes successfully, you should see: ======================================== Apache Hadoop Configuration Installer ======================================== [+] Downloading configuration files... [✓] Download complete. [+] Installing configuration files... [✓] Configuration files installed successfully! Installed to: /opt/hadoop/etc/hadoop > **Note:** The provided configuration files are intended for a **Single Node Hadoop 3.4.2** installation. If you modified the directory paths while following this guide, update the configuration files accordingly before installing them. ## S9. Configure `hadoop-env.sh` The `hadoop-env.sh` file is used to configure environment variables required by Hadoop. The only change required for this guide is to set the `JAVA_HOME` variable. Open the file using a text editor. nano /opt/hadoop/etc/hadoop/hadoop-env.sh Search for the line containing: export JAVA_HOME= or # export JAVA_HOME= Replace it with: export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) Save the file and exit. For Nano: * Press **Ctrl + O** * Press **Enter** to save the file. * Press **Ctrl + X** to exit. You can verify that the `JAVA_HOME` path is detected correctly by running: echo $(dirname $(dirname $(readlink -f $(which java)))) Example output: /usr/lib/jvm/java-21-openjdk-amd64 > **Note:** This command automatically detects the Java installation directory, making the configuration portable across different Linux distributions and Java installation paths. ## S10. Format the NameNode Before starting Hadoop for the first time, the NameNode must be formatted. This initializes the Hadoop Distributed File System (HDFS) and creates the required metadata. Run the following command: hdfs namenode -format During the formatting process, you may be prompted with the following message if the NameNode directory already contains data: Re-format filesystem in Storage Directory root=... ? (Y or N) Type: Y and press **Enter**. If the formatting is successful, the last few lines of the output should look similar to: ... INFO common.Storage: Storage directory ... has been successfully formatted. INFO namenode.FSImageFormatProtobuf: Saving image file ... INFO namenode.NameNode: SHUTDOWN_MSG: > **Important:** Formatting the NameNode permanently removes all existing HDFS metadata and data stored in the configured NameNode and DataNode directories. This command should only be executed during the initial setup or when you intentionally want to reset the Hadoop cluster. Do **not** run this command every time you start Hadoop. ## S11. Start HDFS Now that the NameNode has been formatted, you can start the Hadoop Distributed File System (HDFS). Run the following command: start-dfs.sh If HDFS starts successfully, you should see output similar to: Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [<hostname>] To verify that all HDFS daemons are running, execute: jps Expected output: NameNode DataNode SecondaryNameNode Jps > **Note:** The order of the processes may vary depending on your system. You can also verify that the NameNode is running by opening the following URL in your web browser: http://localhost:9870 If HDFS has started successfully, the NameNode web interface will be displayed, showing information about the cluster, storage usage, live DataNodes, and the HDFS filesystem. ## S12. Start YARN After starting HDFS, the next step is to start YARN (Yet Another Resource Negotiator), which is responsible for resource management and job scheduling in the Hadoop cluster. Run the following command: start-yarn.sh If YARN starts successfully, you should see output similar to: Starting resourcemanager Starting nodemanagers To verify that the YARN daemons are running, execute: jps Expected output: NameNode DataNode SecondaryNameNode ResourceManager NodeManager Jps > **Note:** The order of the processes may vary depending on your system. You can also verify that YARN is running by opening the following URL in your web browser: http://localhost:8088 If YARN has started successfully, the ResourceManager web interface will open, displaying information about the cluster, available resources, running applications, and node status. At this point, your Hadoop Single Node Cluster is up and running. ## S13. Verify the Hadoop Installation After starting both HDFS and YARN, verify that all Hadoop services are running correctly. Check the running Hadoop daemons. jps Expected output: NameNode DataNode SecondaryNameNode ResourceManager NodeManager Jps View the HDFS cluster report. hdfs dfsadmin -report If the cluster is running correctly, the report will display information about the configured capacity, remaining storage, live DataNodes, and other cluster details. Next, open the NameNode Web UI in your browser. http://localhost:9870 The NameNode dashboard should display information such as: * Cluster Summary * Live DataNodes * Storage Information * HDFS Overview Then open the ResourceManager Web UI. http://localhost:8088 The ResourceManager dashboard should display: * Cluster Metrics * Node Status * Running Applications * Available Resources If all the above commands and web interfaces are accessible, your Hadoop Single Node Cluster has been installed and configured successfully. ### Hadoop Web UI Port Quick-Reference Service | Web UI URL | Default Port | Description ---|---|---|--- **HDFS NameNode** | `http://localhost:9870` | 9870 | File system status, capacity, browser directories **YARN ResourceManager** | `http://localhost:8088` | 8088 | Job executions, node resource allocation **HDFS DataNode** | `http://localhost:9864` | 9864 | Individual DataNode status & blocks ## S14. Shut Down the Hadoop Cluster To stop the Hadoop daemons and release system resources safely, stop the YARN resource manager and HDFS services in order. Run the following commands: stop-yarn.sh stop-dfs.sh To verify that all Hadoop services have been stopped successfully, run: jps Expected output: Jps Only the `Jps` process itself should be running, confirming that HDFS and YARN have successfully shut down.
dev.to
July 29, 2026 at 10:34 PM
Build and Deploy Java AI Agents with Google ADK
Debian 13 “Trixie” provides a clean, stable base for Java agent development. On a workstation, virtual machine, or cloud instance, you can compile Java projects, run local web servers, use the Google Agent Development Kit (ADK) Dev UI, and deploy an agent to Google Cloud Run. This guide builds a small ADK agent with time and weather tools. The complete project is available in the sample repository. ## 1. Prepare Debian Trixie Start with a Debian 13 installation and a user account that can run `sudo`. Confirm the operating-system version: . /etc/os-release printf '%s %s (%s)\n' "$NAME" "$VERSION_ID" "$VERSION_CODENAME" ## 2. Install the required tools Update the package index and install the base development tools: sudo apt-get update sudo apt-get install -y curl git maven unzip zip This project compiles with Java 25. One convenient way to install a matching JDK is SDKMAN!: curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk list java Select an available Java 25 identifier from the list and install it (for example, `25-open`): sdk install java 25-open java --version mvn --version Both commands should report Java 25, and Maven must be version 3.6.3 or newer. The build enforces this minimum Maven version. ### Install the Google Cloud CLI Add Google's Debian package repository: sudo apt-get install -y apt-transport-https ca-certificates gnupg curl https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" \ | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list sudo apt-get update sudo apt-get install -y google-cloud-cli Verify the installation: gcloud version The Google Cloud CLI is required for Vertex AI authentication and Cloud Run deployment. It is not required if you only run the agent locally with a Gemini API key. ## 3. Clone and inspect the project git clone https://github.com/xbill9/adk-hello-world-java cd adk-hello-world-java The agent lives at `src/main/java/agents/multitool/MultiToolAgent.java`. Its public `ROOT_AGENT` field lets the ADK Dev UI discover it: public static final BaseAgent ROOT_AGENT = initAgent(); public static BaseAgent initAgent() { return LlmAgent.builder() .name("multi_tool_agent") .model("gemini-2.5-flash") .description("Agent to answer questions about the time and weather in a city.") .tools( FunctionTool.create(MultiToolAgent.class, "getCurrentTime"), FunctionTool.create(MultiToolAgent.class, "getWeather")) .build(); } The tools return structured maps with a `status` and a human-readable `report`. The time tool uses IANA time zones and includes aliases for cities such as San Francisco, Beijing, and Mumbai. ### Current ADK Java baseline This sample uses **ADK for Java 1.7.0** , the latest release available from Maven Central as of July 27, 2026. Both runtime dependencies use the same property so the core library and Dev UI cannot drift to different versions: <properties> <google-adk.version>1.7.0</google-adk.version> </properties> <dependency> <groupId>com.google.adk</groupId> <artifactId>google-adk</artifactId> <version>${google-adk.version}</version> </dependency> <dependency> <groupId>com.google.adk</groupId> <artifactId>google-adk-dev</artifactId> <version>${google-adk.version}</version> </dependency> Recent changes relevant to this project include: * **Java 25 build support.** ADK 1.6 updated its Spring AI integration and build so it works with Java 25. * **More reliable function-tool streaming.** ADK 1.6 aligned Gemini streaming function-call handling with the Python ADK, and 1.7 fixed reassembly of streamed function-call arguments. * **Cleaner command-line shutdown.** ADK now uses daemon threads for its shared HTTP client, preventing idle HTTP workers from keeping the JVM alive after the CLI exits. * **Safer loading and sessions.** Recent fixes restrict dynamic class loading and skill paths and prevent cross-user disclosure in `VertexAiSessionService`. * **More accurate observability.** ADK 1.7 includes tool-related tokens in `gen_ai.usage.input_tokens`. * **Gemini 3 flow compatibility.** ADK 1.7 can reorder forced function calls when a Gemini 3 model requires it. This sample remains on `gemini-2.5-flash` for a stable, broadly available tutorial baseline. These are framework improvements; the sample does not reimplement them. Keeping the ADK dependencies pinned to 1.7.0 is what brings them into the application. ## 4. Choose an authentication mode Run the setup script: ./init.sh It offers two modes: * **Gemini API key** for local development. Create a key in Google AI Studio. The script stores it in `~/gemini.key` with user-only permissions. * **Vertex AI** for local development and Cloud Run. Enter a Google Cloud project ID; the script then configures gcloud and Application Default Credentials (ADC). The selected mode is stored in `~/.adk-hello-world-java-auth`. Run `./init.sh` again whenever you want to switch modes. The launch scripts source `set_env.sh` automatically, so you do not need to export the variables by hand. For Vertex AI, your account and the Cloud Run service identity must have the required Vertex AI permissions. Cloud Run uses its service identity at runtime rather than a downloaded credential file. ## 5. Build, test, and lint Compile the project and run its eight JUnit Jupiter tests: make build make test The tests cover agent initialization, supported and unsupported cities, time-zone aliases, and null input. Run Checkstyle separately: make lint The lint target fails when Google Java Style warnings are found, which makes it useful in local development and continuous integration. ## 6. Run the command-line agent ./cli.sh Example session: You > What is the current time in Tokyo? Agent > The current time in Tokyo is 08:24. You > What is the weather in New York? Agent > The weather in New York is sunny with a temperature of 25 degrees Celsius (77 degrees Fahrenheit). You > quit ## 7. Use the ADK Dev UI Start the local server: ./devui.sh Open http://127.0.0.1:8080 in your browser. ADK scans the Maven output under `target/classes` and makes `multi_tool_agent` available in the UI. The `web.sh` script is retained as an alias for `devui.sh`. ADK 1.6 tightened WebSocket origin handling and warns when the Dev UI uses the `*` CORS default. That default is convenient for local development but should not be treated as an access-control mechanism for a public deployment. ## 8. Deploy to Cloud Run Cloud Run deployment uses Vertex AI rather than copying a local API key into the service. If you selected API-key mode, run `./init.sh` again and choose Vertex AI. Then deploy: ./cloudrun.sh The script runs one source deployment for the `adk-hello-world-java` service in `us-central1`. Because the repository contains a Dockerfile, Cloud Run builds that Dockerfile remotely; Docker does not need to be installed on the Debian system. The container reads Cloud Run's `PORT` environment variable and starts the ADK web server. When deployment completes, gcloud prints the service URL. The deployment is private by default because the service includes the ADK Dev UI and API. Configure authenticated callers with Cloud Run IAM. For a disposable public demonstration, replace `--no-allow-unauthenticated` with `--allow-unauthenticated` in `cloudrun.sh`; do not rely on CORS as access control. ## Project structure . ├── .dockerignore ├── .gcloudignore ├── Dockerfile ├── Makefile ├── cli.sh ├── cloudrun.sh ├── devui.sh ├── init.sh ├── pom.xml ├── set_env.sh └── src ├── main/java/agents/multitool/MultiToolAgent.java └── test/java/agents/multitool/MultiToolAgentTest.java ## Summary Debian Trixie provides everything needed to build and test a Java ADK agent locally. This sample keeps local authentication explicit, verifies the tool logic with JUnit, enforces Java style with Checkstyle, and uses Vertex AI service identity when deployed to Cloud Run. ## Resources * ADK Java quickstart * Google ADK for Java * ADK for Java 1.7.0 release notes * Deploy Cloud Run services from source * Configure Cloud Run service identity * SDKMAN! installation * Sample repository
dev.to
July 27, 2026 at 8:31 PM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
July 27, 2026 at 6:00 AM
Looks like @developers.google.com now have a dedicated Agent Development Kit (ADK) for Kotlin. I had been using Java version from Kotlin code but nice to have this now.
github.com/google/adk-k...
GitHub - google/adk-kotlin
Contribute to google/adk-kotlin development by creating an account on GitHub.
github.com
July 20, 2026 at 3:14 PM
"Nooo, don’t download the JDK, please do not download the Java Development Kit. Please! I beg you!"

I plead as I slam my fists on the height adjustable office desk
July 14, 2026 at 7:32 AM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
July 7, 2026 at 4:00 PM
jdk: Java SE Dev Kit dependencies (1.6.0.7).

A network of class dependencies within the JDK (Java SE Development Kit) 1.

6434 nodes, 150985 edges.

https://networks.skewed.de/net/jdk

Ridiculogram:
July 6, 2026 at 8:00 AM