{"id":166034,"date":"2026-04-14T11:32:56","date_gmt":"2026-04-14T08:32:56","guid":{"rendered":"https:\/\/computingforgeeks.com\/install-java-openjdk-ubuntu-2604\/"},"modified":"2026-04-14T11:32:56","modified_gmt":"2026-04-14T08:32:56","slug":"install-java-openjdk-ubuntu-2604","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/install-java-openjdk-ubuntu-2604\/","title":{"rendered":"Install Java (OpenJDK 25) on Ubuntu 26.04 LTS"},"content":{"rendered":"<p>Ubuntu 26.04 ships OpenJDK 25 as the default JDK. That&#8217;s the latest non-LTS release, and it&#8217;s what you get when you install <code>default-jdk<\/code>. If you need a long-term support version for production workloads, OpenJDK 21 and 17 are both available in the official repos. This guide covers installing all three, switching between them, and setting up Maven and Gradle for build tooling.<\/p>\n\n<p>Beyond the JDK itself, you&#8217;ll see how to set <code>JAVA_HOME<\/code>, use <code>update-alternatives<\/code> to switch Java versions on the fly, write a program that uses modern Java features like records and pattern matching, and build a Maven project from scratch. For those who prefer vendor-backed binaries, there&#8217;s also a section on <a href=\"https:\/\/computingforgeeks.com\/ubuntu-2604-lts-features\/\" target=\"_blank\" rel=\"noreferrer noopener\">Eclipse Temurin (Adoptium)<\/a> as an alternative.<\/p>\n\n<p><em>Current as of <strong>April 2026<\/strong>. OpenJDK 25.0.3-ea, Maven 3.9.12, Gradle 4.4.1 on Ubuntu 26.04 LTS<\/em><\/p>\n\n<h2>Prerequisites<\/h2>\n\n<p>You&#8217;ll need a running Ubuntu 26.04 LTS system with root or sudo access and a working internet connection. If you&#8217;re starting fresh, the <a href=\"https:\/\/computingforgeeks.com\/ubuntu-2604-initial-server-setup\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ubuntu 26.04 initial server setup guide<\/a> covers the basics.<\/p>\n\n<ul>\n<li>Tested on: Ubuntu 26.04 LTS (Resolute Raccoon), kernel 7.0.0<\/li>\n<li>OpenJDK versions available: 25, 21, 17, 11, 8<\/li>\n<li>Build tools: Maven 3.9.12, Gradle 4.4.1<\/li>\n<\/ul>\n\n<h2>Install OpenJDK 25 (Default JDK)<\/h2>\n\n<p>The <code>default-jdk<\/code> metapackage in Ubuntu 26.04 pulls in OpenJDK 25. This is the simplest way to get Java on your system.<\/p>\n\n<p>Update the package index first:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt update<\/code><\/pre>\n\n\n<p>Install the default JDK:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y default-jdk<\/code><\/pre>\n\n\n<p>Verify the installation by checking both the runtime and compiler versions:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>java -version<\/code><\/pre>\n\n\n<p>The output confirms OpenJDK 25 is installed:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>openjdk version \"25.0.3-ea\" 2026-04-21\nOpenJDK Runtime Environment (build 25.0.3-ea+7-Ubuntu-2)\nOpenJDK 64-Bit Server VM (build 25.0.3-ea+7-Ubuntu-2, mixed mode, sharing)<\/code><\/pre>\n\n\n<p>Check the compiler:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>javac -version<\/code><\/pre>\n\n\n<p>You should see:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>javac 25.0.3-ea<\/code><\/pre>\n\n\n<h3>JDK vs JRE on Ubuntu 26.04<\/h3>\n\n<p>Ubuntu 26.04 still provides separate JRE packages (<code>default-jre<\/code>, <code>openjdk-25-jre<\/code>), but for development work, the JDK is what you want. The JDK includes the JRE plus the compiler (<code>javac<\/code>), debugger, and other development tools. If you&#8217;re deploying a Java application on a server and only need to run it (not compile), <code>default-jre<\/code> is enough and has a smaller footprint.<\/p>\n\n<h2>Install OpenJDK 21 LTS and OpenJDK 17 LTS<\/h2>\n\n<p>OpenJDK 25 is a feature release with a short support window. For production applications, OpenJDK 21 (LTS until September 2028) or OpenJDK 17 (LTS until September 2026) are safer choices. Both are in the Ubuntu repos.<\/p>\n\n<p>Install OpenJDK 21:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y openjdk-21-jdk<\/code><\/pre>\n\n\n<p>Install OpenJDK 17:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y openjdk-17-jdk<\/code><\/pre>\n\n\n<p>All three JDKs can coexist on the same system. The <code>update-alternatives<\/code> system manages which one is active.<\/p>\n\n<h2>Switch Between Java Versions<\/h2>\n\n<p>With multiple JDKs installed, <code>update-alternatives<\/code> lets you choose which version is the system default. List the available options:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>update-alternatives --list java<\/code><\/pre>\n\n\n<p>This shows all registered Java installations:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>\/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java\n\/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/java\n\/usr\/lib\/jvm\/java-25-openjdk-amd64\/bin\/java<\/code><\/pre>\n\n\n<p>To switch to OpenJDK 21, for example:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo update-alternatives --set java \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/java\nsudo update-alternatives --set javac \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/javac<\/code><\/pre>\n\n\n<p>Confirm the switch took effect:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>java -version<\/code><\/pre>\n\n\n<p>Output now shows OpenJDK 21:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>openjdk version \"21.0.11-ea\" 2026-04-21\nOpenJDK Runtime Environment (build 21.0.11-ea+8-Ubuntu-1)\nOpenJDK 64-Bit Server VM (build 21.0.11-ea+8-Ubuntu-1, mixed mode, sharing)<\/code><\/pre>\n\n\n<p>Switch back to OpenJDK 25 when you&#8217;re done:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo update-alternatives --set java \/usr\/lib\/jvm\/java-25-openjdk-amd64\/bin\/java\nsudo update-alternatives --set javac \/usr\/lib\/jvm\/java-25-openjdk-amd64\/bin\/javac<\/code><\/pre>\n\n\n<p>For interactive selection with a numbered menu, use <code>sudo update-alternatives --config java<\/code> instead. This is handy when you don&#8217;t want to type the full path.<\/p>\n\n<h2>Set JAVA_HOME<\/h2>\n\n<p>Many Java tools and frameworks (Maven, Gradle, Tomcat, Spring Boot) expect the <code>JAVA_HOME<\/code> environment variable to be set. Without it, you&#8217;ll hit cryptic errors during builds.<\/p>\n\n<p>Add <code>JAVA_HOME<\/code> to <code>\/etc\/environment<\/code> so it&#8217;s available system-wide:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>echo 'JAVA_HOME=\"\/usr\/lib\/jvm\/java-25-openjdk-amd64\"' | sudo tee -a \/etc\/environment<\/code><\/pre>\n\n\n<p>Load the new variable into your current session:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>source \/etc\/environment<\/code><\/pre>\n\n\n<p>Verify it&#8217;s set:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>echo $JAVA_HOME<\/code><\/pre>\n\n\n<p>Expected output:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>\/usr\/lib\/jvm\/java-25-openjdk-amd64<\/code><\/pre>\n\n\n<p>If you switch to a different JDK version with <code>update-alternatives<\/code>, remember to update <code>JAVA_HOME<\/code> accordingly. A mismatch between <code>JAVA_HOME<\/code> and the active <code>java<\/code> binary is a common source of confusion.<\/p>\n\n<h2>Write and Compile a Java Program<\/h2>\n\n<p>OpenJDK 25 supports all the modern Java features, including records (introduced in Java 16) and pattern matching with switch expressions (finalized in Java 21). Here&#8217;s a small program that uses both.<\/p>\n\n<p>Create the source file:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo vi \/tmp\/ModernJava.java<\/code><\/pre>\n\n\n<p>Add the following code:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>record ServerInfo(String name, String os, int cores) {}\n\npublic class ModernJava {\n    static String describeServer(Object obj) {\n        return switch (obj) {\n            case ServerInfo s when s.cores() >= 8 -> s.name() + \" is a high-core server with \" + s.cores() + \" cores\";\n            case ServerInfo s -> s.name() + \" runs \" + s.os() + \" with \" + s.cores() + \" cores\";\n            case String s -> \"Got a string: \" + s;\n            default -> \"Unknown type\";\n        };\n    }\n\n    public static void main(String[] args) {\n        var server = new ServerInfo(\"web01\", \"Ubuntu 26.04\", 4);\n        System.out.println(describeServer(server));\n\n        var bigServer = new ServerInfo(\"db01\", \"Ubuntu 26.04\", 16);\n        System.out.println(describeServer(bigServer));\n\n        System.out.println(describeServer(\"hello\"));\n        System.out.println(\"Java \" + System.getProperty(\"java.version\") + \" is working.\");\n    }\n}<\/code><\/pre>\n\n\n<p>Compile and run it:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>cd \/tmp && javac ModernJava.java && java ModernJava<\/code><\/pre>\n\n\n<p>The output shows records and pattern matching working correctly on OpenJDK 25:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>web01 runs Ubuntu 26.04 with 4 cores\ndb01 is a high-core server with 16 cores\nGot a string: hello\nJava 25.0.3-ea is working.<\/code><\/pre>\n\n\n<p>The <code>record<\/code> keyword creates an immutable data class with auto-generated constructors, getters, <code>equals()<\/code>, <code>hashCode()<\/code>, and <code>toString()<\/code>. The <code>switch<\/code> expression uses pattern matching to destructure objects by type and apply guards (<code>when s.cores() >= 8<\/code>). Both features make Java code significantly more concise than the traditional approach.<\/p>\n\n<h2>Install Maven<\/h2>\n\n<p>Maven is the most widely used Java build tool. Ubuntu 26.04 includes Maven 3.9.12 in its repos.<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y maven<\/code><\/pre>\n\n\n<p>Check the version:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>mvn --version<\/code><\/pre>\n\n\n<p>Maven confirms it&#8217;s using OpenJDK 25:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Apache Maven 3.9.12\nMaven home: \/usr\/share\/maven\nJava version: 25.0.3-ea, vendor: Ubuntu, runtime: \/usr\/lib\/jvm\/java-25-openjdk-amd64\nDefault locale: en, platform encoding: UTF-8\nOS name: \"linux\", version: \"7.0.0-10-generic\", arch: \"amd64\", family: \"unix\"<\/code><\/pre>\n\n\n<h3>Build a Simple Maven Project<\/h3>\n\n<p>Create a basic project structure to verify the full Maven toolchain works:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>mkdir -p \/tmp\/hello-app\/src\/main\/java\/com\/example<\/code><\/pre>\n\n\n<p>Create the POM file:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo vi \/tmp\/hello-app\/pom.xml<\/code><\/pre>\n\n\n<p>Add the following project definition:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>&lt;project&gt;\n  &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n  &lt;groupId&gt;com.example&lt;\/groupId&gt;\n  &lt;artifactId&gt;hello-app&lt;\/artifactId&gt;\n  &lt;version&gt;1.0-SNAPSHOT&lt;\/version&gt;\n  &lt;properties&gt;\n    &lt;maven.compiler.source&gt;25&lt;\/maven.compiler.source&gt;\n    &lt;maven.compiler.target&gt;25&lt;\/maven.compiler.target&gt;\n    &lt;project.build.sourceEncoding&gt;UTF-8&lt;\/project.build.sourceEncoding&gt;\n  &lt;\/properties&gt;\n&lt;\/project&gt;<\/code><\/pre>\n\n\n<p>Create the main class:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo vi \/tmp\/hello-app\/src\/main\/java\/com\/example\/App.java<\/code><\/pre>\n\n\n<p>Add this code:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>package com.example;\npublic class App {\n    public static void main(String[] args) {\n        System.out.println(\"Hello from Maven on Java \" + System.getProperty(\"java.version\"));\n    }\n}<\/code><\/pre>\n\n\n<p>Build the project:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>cd \/tmp\/hello-app && mvn package<\/code><\/pre>\n\n\n<p>Maven downloads dependencies on the first run, then compiles and packages the JAR. You should see <code>BUILD SUCCESS<\/code> at the end.<\/p>\n\n<p>Run the compiled application:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>java -cp target\/hello-app-1.0-SNAPSHOT.jar com.example.App<\/code><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Hello from Maven on Java 25.0.3-ea<\/code><\/pre>\n\n\n<h2>Install Gradle<\/h2>\n\n<p>Gradle is the other major Java build tool, favored by Android and Kotlin projects. The Ubuntu repos include Gradle 4.4.1.<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y gradle<\/code><\/pre>\n\n\n<p>Verify the installation:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>gradle --version<\/code><\/pre>\n\n\n<p>The output confirms Gradle is using the OpenJDK 25 runtime:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Gradle 4.4.1\n\nBuild time:   2012-12-21 00:00:00 UTC\nRevision:     none\n\nGroovy:       2.4.21\nAnt:          Apache Ant(TM) version 1.10.15 compiled on January 13 2026\nJVM:          25.0.3-ea (Ubuntu 25.0.3-ea+7-Ubuntu-2)\nOS:           Linux 7.0.0-10-generic amd64<\/code><\/pre>\n\n\n<p>The repo version of Gradle is quite old. If your project requires a newer version (Gradle 8.x), use the <a href=\"https:\/\/docs.gradle.org\/current\/userguide\/gradle_wrapper.html\" target=\"_blank\" rel=\"noreferrer noopener\">Gradle Wrapper<\/a> instead. Most modern Java projects include a <code>gradlew<\/code> script that downloads the correct Gradle version automatically.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/04\/java-openjdk-25-version-ubuntu-2604.png\" alt=\"Java OpenJDK 25 version, Maven 3.9.12, and Gradle 4.4.1 on Ubuntu 26.04 LTS\" class=\"wp-image-166028\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/04\/java-openjdk-25-version-ubuntu-2604.png 920w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/04\/java-openjdk-25-version-ubuntu-2604-300x261.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/04\/java-openjdk-25-version-ubuntu-2604-768x668.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n<h2>Alternative: Install Eclipse Temurin (Adoptium) JDK<\/h2>\n\n<p>If you prefer vendor-backed, TCK-certified builds of OpenJDK, <a href=\"https:\/\/adoptium.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">Eclipse Temurin<\/a> from the Adoptium project is a solid option. Temurin builds go through additional testing and come with longer support commitments. They&#8217;re functionally identical to the Ubuntu OpenJDK packages but follow their own release schedule.<\/p>\n\n<p>Install the prerequisites:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt install -y wget apt-transport-https gpg<\/code><\/pre>\n\n\n<p>Add the Adoptium GPG key:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>wget -qO - https:\/\/packages.adoptium.net\/artifactory\/api\/gpg\/key\/public | gpg --dearmor | sudo tee \/usr\/share\/keyrings\/adoptium.gpg > \/dev\/null<\/code><\/pre>\n\n\n<p>Add the repository. The codename for Ubuntu 26.04 may not be available yet, in which case use the <code>noble<\/code> (24.04) repo which is compatible:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>echo \"deb [signed-by=\/usr\/share\/keyrings\/adoptium.gpg] https:\/\/packages.adoptium.net\/artifactory\/deb $(awk -F= '\/^VERSION_CODENAME\/{print $2}' \/etc\/os-release) main\" | sudo tee \/etc\/apt\/sources.list.d\/adoptium.list<\/code><\/pre>\n\n\n<p>Update the package list and install Temurin 21 LTS:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>sudo apt update && sudo apt install -y temurin-21-jdk<\/code><\/pre>\n\n\n<p>If the <code>resolute<\/code> codename isn&#8217;t supported yet by Adoptium, replace it with <code>noble<\/code> in the sources list. Temurin is available for JDK 8, 11, 17, and 21 LTS versions. After installation, it registers automatically with <code>update-alternatives<\/code>, so you can switch to it using the same commands shown earlier.<\/p>\n\n<p>The choice between Ubuntu&#8217;s OpenJDK and Temurin comes down to support model. Ubuntu backports security patches on their own schedule tied to the distro lifecycle. Adoptium follows Oracle&#8217;s quarterly Critical Patch Update schedule. For most use cases, either is fine. If you&#8217;re running a Java application in <a href=\"https:\/\/computingforgeeks.com\/install-docker-ce-ubuntu-2604\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker containers<\/a>, Temurin&#8217;s official container images are another convenient option.<\/p>\n\n<h2>Available OpenJDK Versions<\/h2>\n\n<p>Ubuntu 26.04 repos include JDK packages for multiple Java generations. Here&#8217;s the full list, which is useful when you need a specific version for legacy application compatibility:<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Package<\/th><th>Java Version<\/th><th>Support Status<\/th><th>Use Case<\/th><\/tr><\/thead><tbody><tr><td><code>openjdk-25-jdk<\/code><\/td><td>25 (latest)<\/td><td>Non-LTS, short-term<\/td><td>Trying new features, development<\/td><\/tr><tr><td><code>openjdk-21-jdk<\/code><\/td><td>21 LTS<\/td><td>Supported until Sep 2028<\/td><td>Production applications<\/td><\/tr><tr><td><code>openjdk-17-jdk<\/code><\/td><td>17 LTS<\/td><td>Supported until Sep 2026<\/td><td>Legacy apps, Spring Boot 2.x<\/td><\/tr><tr><td><code>openjdk-11-jdk<\/code><\/td><td>11 LTS<\/td><td>End of life<\/td><td>Legacy only, migrate off<\/td><\/tr><tr><td><code>openjdk-8-jdk<\/code><\/td><td>8 LTS<\/td><td>End of life<\/td><td>Legacy only, migrate off<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>For new projects, OpenJDK 21 is the pragmatic choice: it&#8217;s LTS with years of support ahead, and most frameworks (Spring Boot 3.x, Quarkus, Micronaut) target it. OpenJDK 25 is worth using in development to test upcoming language features before they land in the next LTS (Java 29, expected September 2027).<\/p>\n\n<p>If you&#8217;re also setting up <a href=\"https:\/\/computingforgeeks.com\/install-python-ubuntu-2604\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a> or <a href=\"https:\/\/computingforgeeks.com\/install-nginx-ubuntu-2604-lets-encrypt\/\" target=\"_blank\" rel=\"noreferrer noopener\">Nginx<\/a> on the same server, those guides cover the Ubuntu 26.04 specifics as well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ubuntu 26.04 ships OpenJDK 25 as the default JDK. That&#8217;s the latest non-LTS release, and it&#8217;s what you get when you install default-jdk. If you need a long-term support version for production workloads, OpenJDK 21 and 17 are both available in the official repos. This guide covers installing all three, switching between them, and setting &#8230; <a title=\"Install Java (OpenJDK 25) on Ubuntu 26.04 LTS\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/install-java-openjdk-ubuntu-2604\/\" aria-label=\"Read more about Install Java (OpenJDK 25) on Ubuntu 26.04 LTS\">Read more<\/a><\/p>\n","protected":false},"author":24,"featured_media":166035,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[690,299,50,81],"tags":[669,311,282,2254,39816],"cfg_series":[39799],"class_list":["post-166034","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-how-to","category-linux-tutorials","category-ubuntu","tag-dev","tag-java","tag-linux","tag-ubuntu","tag-ubuntu-26-04","cfg_series-ubuntu-2604-web-stack"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/166034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=166034"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/166034\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/166035"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=166034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=166034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=166034"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=166034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}