# [Validate PAC/BTI security features in OpenJDK on Google Cloud C4A](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/)
- [Learn about PAC/BTI security features and OpenJDK support](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/background/)
- [Create a Google Cloud C4A instance](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/instance/)
- [Test PAC/BTI support with SUSE OpenJDK](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/jvm-testing/)
- [Test PAC/BTI support with Oracle JDK](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/jvm-testing-2/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/_next-steps/)

## About this Learning Path

| Skill level: | Introductory |
|--------------|--------------|
| Reading time: | 30 min |
| Last updated: | 31 Jul 2026 |

| Author: | Doug Anson, Arm [GitHub](https://github.com/DougAnsonAustinTx) [LinkedIn](https://linkedin.com/in/douganson) |
|----------|-----------------------------------------------------------------------------------------------------------------|
| Arm IP: | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags: | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture), [Google Cloud](https://learn.arm.com/tag/google-cloud), [Linux](https://learn.arm.com/tag/linux), [Java](https://learn.arm.com/tag/java), [OpenJDK](https://learn.arm.com/tag/openjdk), [Bash](https://learn.arm.com/tag/bash) |

### Who is this for?
This is for Java developers running OpenJDK on Arm Neoverse platforms who want to verify PAC/BTI security features are properly enabled. Pointer Authentication (PAC) cryptographically signs return addresses to detect tampering, while Branch Target Identification (BTI) restricts where indirect branches can land. You'll learn to test both hardware capabilities and JVM compiler support for these Armv9 security features.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Provision a Google Cloud C4A Arm-based virtual machine with SUSE Linux Enterprise Server.
- Install OpenJDK on the Arm-based VM.
- Verify PAC/BTI readiness in the installed JVM runtime.

### Prerequisites
Before starting, you will need the following:
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
- Optionally, [install the gcloud CLI](https://learn.arm.com/install-guides/gcloud/) to connect to the VM from a local terminal instead of using the browser-based SSH.
