# Validate PAC/BTI in OpenJDK on Google Axion C4A

## 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: | 03 Nov 2026 |

|  |  |
| --- | --- |
| Author: | Doug Anson , Arm<br>[GitHub](https://github.com/DougAnsonAustinTx)<br>[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 Axion](https://learn.arm.com/tag/google-axion) [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 Pointer Authentication (PAC) and Branch Target Identification (BTI) security features are properly enabled. PAC cryptographically signs return addresses to detect tampering, while BTI restricts where indirect branches can land.

## What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Provision a Google Cloud C4A Arm-based virtual machine (VM) with SUSE Linux Enterprise Server.
- Install OpenJDK on the Arm-based VM.
- Verify PAC and BTI readiness in the installed Java VM (JVM) runtime.

## Prerequisites
Before starting, you'll need the following prerequisites:
- 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.

## Summary
You’ll validate PAC and BTI support in Java on a Google Axion C4A VM. First, you’ll provision a SUSE Linux Enterprise Server VM and install OpenJDK. You’ll run a script that checks platform capabilities and JVM just-in-time (JIT) compiler support. Then, you’ll install Oracle JDK 21, repeat the tests, and compare how each runtime reports branch-protection support.
