The Java Runtime

Overview

Your Cloud Run function runs in an environment consisting of an operating system version plus add-on packages, language support, and the Functions Framework library that supports and invokes your function. This environment is identified by the language version, and is known as the runtime.

For information about runtimes in general, and to learn which Ubuntu version each Java runtime uses, see the Cloud Run functions execution environment.

Select your runtime

Cloud Run functions supports several versions of Java, listed on the Runtime support page. You can select the preferred Ruby Java for your function during deployment.

gcloud

If you're using the Google Cloud CLI, specify the runtime by using the --runtime parameter. The --entry-point flag specifies the fully qualified class name (FQN). For example:

gcloud functions deploy NAME --no-gen2 --entry-point FQN --runtime java21 --trigger-http

For more deployment parameters, see Deploy a Cloud Run function.

Console

If you're using the Google Cloud console, select the runtime when you create and deploy your function. See the Google Cloud console quickstart for detailed instructions.

Function preparation

You can prepare a function directly from the Google Cloud console or write it on your local machine and upload it. To prepare your local machine for Java development, see Setting Up a Java Development Environment. The library that invokes your function is the Java Functions Framework.

To get started with Java on Cloud Run functions, see the Quickstart.

Source code structure

For Cloud Run functions to find your function's definition, your source code must follow a specific structure. See Writing Cloud Run functions for more information.

Specifying dependencies

You can specify dependencies for your function using Maven or Gradle. For more information, see Specifying dependencies in Java.

Environment variables

Your Java runtime automatically sets certain environment variables for your function to use as needed. For details, see Using Environment Variables.

What's next