{"id":776,"date":"2026-04-22T11:25:49","date_gmt":"2026-04-22T11:25:49","guid":{"rendered":"https:\/\/blogs.ua.es\/jpm33\/?p=776"},"modified":"2026-04-22T11:25:49","modified_gmt":"2026-04-22T11:25:49","slug":"utilizar-diferentes-java-jdk-o-jres-en-ubuntu","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/jpm33\/2026\/04\/22\/utilizar-diferentes-java-jdk-o-jres-en-ubuntu\/","title":{"rendered":"Utilizar diferentes Java JDK (o JREs) en Ubuntu"},"content":{"rendered":"\n<p><strong>Problema<\/strong><\/p>\n\n\n\n<p>El problema es t\u00edpico y sencillo de arreglar: Trabajar en Ubuntu y desarrollas en Java pero tienes proyectos que utilizan diferentes JDKs (o JREs). \u00bfC\u00f3mo arreglarlo de forma f\u00e1cil? Primero vamos a suponer que tienes 3 versiones de la JDK, yo los he instalado con estos comandos:<\/p>\n\n\n\n<code><pre>\nsudo apt install -y openjdk-8-jdk-headless\nsudo apt install -y openjdk-17-jdk-headless\nsudo apt install -y openjdk-21-jdk-headless\n<\/pre><\/code>\n\n\n\n<p>Por defecto y de forma autom\u00e1tica tendremos disponible la \u00faltima versi\u00f3n.<\/p>\n\n\n\n<code><pre>\n$ java -version\nopenjdk version \"21.0.10\" 2026-01-20\n\n$ javac -version\njavac 21.0.10\n<\/pre><\/code>\n\n\n\n<p><strong>\u00bfC\u00f3mo cambiar la versi\u00f3n predeterminada?<\/strong><\/p>\n\n\n\n<p>Para cambiar la versi\u00f3n &#8220;seleccionada&#8221; por el sistema podemos usar el comando <strong>update-alternatives<\/strong>. Con el siguiente comando podemos ver todos los comandos referentes a java:<\/p>\n\n\n\n<code><pre>\nsudo update-alternatives --get-selections | grep java\n<\/pre><\/code>\n\n\n\n<p>Ejecuta los siguientes comandos y seleccionamos el n\u00famero de la versi\u00f3n deseada (tanto para java y javac):<\/p>\n\n\n\n<code><pre>\n$ sudo update-alternatives --config java\nThere are 3 choices for the alternative java (providing \/usr\/bin\/java).\n\n  Selection    Path                                            Priority   Status\n------------------------------------------------------------\n* 0            \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/java      2111      auto mode\n  1            \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java      1711      manual mode\n  2            \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/java      2111      manual mode\n  3            \/usr\/lib\/jvm\/java-8-openjdk-amd64\/jre\/bin\/java   1081      manual mode\n\nPress  to keep the current choice[*], or type selection number: 1\nupdate-alternatives: using \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java to provide \/usr\/bin\/java (java) in manual mode\n\n$ java -version\nopenjdk version \"17.0.18\" 2026-01-20\nOpenJDK Runtime Environment (build 17.0.18+8-Ubuntu-124.04.1)\nOpenJDK 64-Bit Server VM (build 17.0.18+8-Ubuntu-124.04.1, mixed mode, sharing)\n\n$ sudo update-alternatives --config javac\nThere are 3 choices for the alternative javac (providing \/usr\/bin\/javac).\n\n  Selection    Path                                          Priority   Status\n------------------------------------------------------------\n* 0            \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/javac   2111      auto mode\n  1            \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/javac   1711      manual mode\n  2            \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/javac   2111      manual mode\n  3            \/usr\/lib\/jvm\/java-8-openjdk-amd64\/bin\/javac    1081      manual mode\n\nPress  to keep the current choice[*], or type selection number: 1\nupdate-alternatives: using \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/javac to provide \/usr\/bin\/javac (javac) in manual mode\n\n$ javac -version\njavac 17.0.18\n<\/pre><\/code>\n\n\n\n<p>Y ya est\u00e1, hay m\u00e1s formas como usar <a href=\"https:\/\/www.jenv.be\/\">jEnv <\/a>o <a href=\"https:\/\/sdkman.io\/install\/\">SDKMAN<\/a>, pero eso lo dejo para otra entrada.<\/p>\n\n\n\n<p>\u00a1Espero que sea de ayuda!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problema El problema es t\u00edpico y sencillo de arreglar: Trabajar en Ubuntu y desarrollas en Java pero tienes proyectos que utilizan diferentes JDKs (o JREs). \u00bfC\u00f3mo arreglarlo de forma f\u00e1cil? Primero vamos a suponer que tienes 3 versiones de la &hellip; <a href=\"https:\/\/blogs.ua.es\/jpm33\/2026\/04\/22\/utilizar-diferentes-java-jdk-o-jres-en-ubuntu\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3080,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[676],"tags":[],"class_list":["post-776","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/users\/3080"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/comments?post=776"}],"version-history":[{"count":1,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/776\/revisions"}],"predecessor-version":[{"id":777,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/776\/revisions\/777"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/media?parent=776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/categories?post=776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/tags?post=776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}