{"id":4563,"date":"2025-05-08T17:39:36","date_gmt":"2025-05-08T15:39:36","guid":{"rendered":"https:\/?p=4563"},"modified":"2025-05-15T13:53:58","modified_gmt":"2025-05-15T11:53:58","slug":"capitulo-1-programacion-en-oracle-java-se-21","status":"publish","type":"post","link":"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/","title":{"rendered":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS."},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"http:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p-300x169.jpg\" alt=\"\" class=\"wp-image-4564\" style=\"width:1200px;height:auto\"\/><\/figure>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos del articulo.<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#Curso_de_Oracle_Java_SE_21_LTS_a_Fondo\" >Curso de Oracle Java SE 21 LTS a Fondo<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#1_Introduccion_a_Java_y_la_Programacion_Orientada_a_Objetos_POO\" >1. Introducci\u00f3n a Java y la Programaci\u00f3n Orientada a Objetos (POO)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#11_Programacion_Orientada_a_Objetos_en_Java\" >1.1. Programaci\u00f3n Orientada a Objetos en Java<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#2_%C2%BFQue_es_Oracle_Java_SE_21_LTS\" >2. \u00bfQu\u00e9 es Oracle Java SE 21 LTS?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#3_Historia_del_Lenguaje_Java_y_su_Inventor\" >3. Historia del Lenguaje Java y su Inventor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#4_Tecnologias_Java\" >4. Tecnolog\u00edas Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#5_%C2%BFQue_es_el_JDK\" >5. \u00bfQu\u00e9 es el JDK?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#6_Instalacion_del_JDK_de_Oracle_Java_SE_21_LTS_en_Diferentes_Sistemas_Operativos\" >6. Instalaci\u00f3n del JDK de Oracle Java SE 21 LTS en Diferentes Sistemas Operativos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#61_En_Windows_11\" >6.1. En Windows 11<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#62_En_MacOS\" >6.2. En MacOS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#63_En_Debian_Ubuntu_Linux_Mint_y_MX%E2%80%91Linux\" >6.3. En Debian, Ubuntu, Linux Mint y MX\u2011Linux<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#7_Compilacion_Ejecucion_Depuracion_y_Empaquetado_con_JAR\" >7. Compilaci\u00f3n, Ejecuci\u00f3n, Depuraci\u00f3n y Empaquetado con JAR<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#71_Compilacion_y_Ejecucion_desde_la_Linea_de_Comandos\" >7.1. Compilaci\u00f3n y Ejecuci\u00f3n desde la L\u00ednea de Comandos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#72_Depuracion_con_el_Depurador_JDB\" >7.2. Depuraci\u00f3n con el Depurador JDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#73_Empaquetado_y_Uso_de_Archivos_JAR\" >7.3. Empaquetado y Uso de Archivos JAR<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#8_IDEs_de_Programacion_Java_de_Codigo_Abierto\" >8. IDEs de Programaci\u00f3n Java de C\u00f3digo Abierto<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#9_Gestion_de_Librerias_y_Dependencias_con_Maven\" >9. Gesti\u00f3n de Librer\u00edas y Dependencias con Maven<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#10_Caracteristicas_de_Oracle_Java_SE_21_LTS\" >10. Caracter\u00edsticas de Oracle Java SE 21 LTS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#11_Novedades_de_Oracle_Java_SE_21_LTS\" >11. Novedades de Oracle Java SE 21 LTS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#12_Aplicaciones_y_Proyectos_que_se_Pueden_Desarrollar_en_Java\" >12. Aplicaciones y Proyectos que se Pueden Desarrollar en Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#13_Programa_Explicativo_%C2%ABHola_Mundo%C2%BB_en_Java\" >13. Programa Explicativo \u00abHola Mundo\u00bb en Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#14_Conclusiones\" >14. Conclusiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#15_Resumen_del_Capitulo\" >15. Resumen del Cap\u00edtulo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#16_Referencias\" >16. Referencias<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/#17_Mirada_Hacia_Adelante\" >17. Mirada Hacia Adelante<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Curso_de_Oracle_Java_SE_21_LTS_a_Fondo\"><\/span>Curso de Oracle Java SE 21 LTS a Fondo<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la versi\u00f3n LTS respaldada por Oracle. Aqu\u00ed aprender\u00e1s sobre los or\u00edgenes e historia del lenguaje, su filosof\u00eda y la Programaci\u00f3n Orientada a Objetos (POO), hasta la instalaci\u00f3n y configuraci\u00f3n detallada del JDK en los principales sistemas operativos. Adem\u00e1s, se explica el ciclo completo de desarrollo: compilaci\u00f3n, ejecuci\u00f3n, depuraci\u00f3n y empaquetado (mediante archivos JAR) utilizando las herramientas incluidas en el JDK. Tambi\u00e9n se describen las diversas aplicaciones y proyectos que se pueden desarrollar con Java, y se profundiza en la Programaci\u00f3n Orientada a Objetos en Java. Esta gu\u00eda sienta la base para abordar temas m\u00e1s avanzados en cap\u00edtulos posteriores.<\/p>\r\n<p>Actualmente, estoy estudiando <strong>Java SE<\/strong> por lo que he decidido crear mi primer curso sobre este lenguaje de programaci\u00f3n y as\u00ed aprender yo, ayudar a otros estudiantes a ser programadores Java, es un art\u00edculo resumido, sin paja, directo al grano para aprender pronto a desarrollar software en Linux, una gu\u00eda perfecta para aprender r\u00e1pido y encontrar trabajo lo antes posible. El curso es totalmente gratuito con licencia Creative Commons y el c\u00f3digo es GPL. El curso estar\u00e1 dividido en cap\u00edtulos y espero que te ayude al igual que me est\u00e1 valiendo a m\u00ed. Los IDEs que vamos a utilizar es el Eclipse IDE, Visual Studio Code y la terminal de Linux. He elegido el JDK Java SE 21 por ser versi\u00f3n LTS, pero ya estamos en el Java SE 24 que es una versi\u00f3n menor de Oracle.<\/p>\r\n<h2 class=\"western wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Introduccion_a_Java_y_la_Programacion_Orientada_a_Objetos_POO\"><\/span>1. Introducci\u00f3n a Java y la Programaci\u00f3n Orientada a Objetos (POO)<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Oracle Java SE 21 LTS se enmarca en la filosof\u00eda <strong>\u00abWrite Once, Run Anywhere\u00bb<\/strong>, ya que el c\u00f3digo fuente se compila a bytecode, el cual es interpretado por la M\u00e1quina Virtual Java (JVM). Esto permite que la misma aplicaci\u00f3n se ejecute de forma id\u00f3nea en distintos sistemas operativos sin necesidad de modificaciones.<\/p>\r\n<p>La Programaci\u00f3n Orientada a Objetos es el pilar fundamental de Java. Dividir el c\u00f3digo en clases y objetos favorece la modularidad, el mantenimiento y la reutilizaci\u00f3n, lo cual es esencial en proyectos grandes y complejos. A continuaci\u00f3n se profundiza en los principios b\u00e1sicos de la POO.<\/p>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"11_Programacion_Orientada_a_Objetos_en_Java\"><\/span>1.1. Programaci\u00f3n Orientada a Objetos en Java<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>La POO se sustenta en cuatro pilares esenciales:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Encapsulaci\u00f3n:<\/strong> Consiste en ocultar los datos internos de una clase y exponer solo los m\u00e9todos necesarios para su manipulaci\u00f3n. Se utilizan modificadores de acceso (<em>private<\/em>, <em>protected<\/em>, <em>public<\/em>) junto con m\u00e9todos <em>getter<\/em> y <em>setter<\/em>. <strong>Ejemplo:<\/strong><\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">      public class Persona {\n          private String nombre; \/\/ Atributo privado\n      \n          public String getNombre() {\n              return nombre;\n          }\n      \n          public void setNombre(String nombre) {\n              this.nombre = nombre;\n          }\n      }<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>Herencia:<\/strong> Permite crear nuevas clases a partir de clases existentes, heredando sus atributos y m\u00e9todos para extender o especializar funcionalidades. <strong>Ejemplo:<\/strong><\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">      public class Animal {\n          public void comer() {\n              System.out.println(&quot;El animal est\u00e1 comiendo&quot;);\n          }\n      }\n      \n      public class Perro extends Animal {\n          public void ladrar() {\n              System.out.println(&quot;El perro ladra&quot;);\n          }\n      }\n      \n      \/\/ Uso:\n      Perro miPerro = new Perro();\n      miPerro.comer();  \/\/ M\u00e9todo heredado\n      miPerro.ladrar(); \/\/ M\u00e9todo propio<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>Polimorfismo:<\/strong> Permite que una misma variable o m\u00e9todo se comporte de diferentes formas seg\u00fan el objeto que lo contenga. Por ejemplo, se puede tener una referencia de tipo padre y asignarle un objeto de una clase derivada, aprovechando la sobrescritura de m\u00e9todos. <strong>Ejemplo:<\/strong><\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">      Animal miAnimal = new Perro();\n      miAnimal.comer(); \/\/ Se ejecuta el m\u00e9todo definido en Animal\n      \/\/ Para acceder a m\u00e9todos espec\u00edficos de Perro, se podr\u00eda realizar un casting.<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>Abstracci\u00f3n:<\/strong> Consiste en definir clases abstractas o interfaces que establecen un modelo o contrato para las clases que las implementen, dejando la implementaci\u00f3n concreta a las clases derivadas. <strong>Ejemplo:<\/strong><\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">      public abstract class Forma {\n          public abstract double calcularArea();\n      }\n      \n      public class Circulo extends Forma {\n          private double radio;\n          \n          public Circulo(double radio) {\n              this.radio = radio;\n          }\n          \n          @Override\n          public double calcularArea() {\n              return Math.PI * radio * radio;\n          }\n      }<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p>Estos principios facilitan el desarrollo de aplicaciones modulares, escalables y mantenibles, cimentando la importancia de la POO en el ecosistema Java. No pretendo que entiendas ni sepas que es la programaci\u00f3n orientada a objetos, es simplemete una primera toma de contacto explicando de 0.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"2_%C2%BFQue_es_Oracle_Java_SE_21_LTS\"><\/span>2. \u00bfQu\u00e9 es Oracle Java SE 21 LTS?<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Oracle Java SE 21 LTS es la versi\u00f3n m\u00e1s reciente del lenguaje Java respaldada por Oracle. Entre sus caracter\u00edsticas principales se destacan:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Portabilidad:<\/strong> Las aplicaciones se compilan a bytecode, garantizando que se ejecuten de forma id\u00f3nea en Windows, macOS, Linux y otros sistemas sin modificaciones.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Seguridad y Robustez:<\/strong> Posee un riguroso manejo de excepciones, un avanzado Garbage Collector y una sintaxis estricta que ayuda a minimizar errores en tiempo de ejecuci\u00f3n.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Amplia Biblioteca Est\u00e1ndar:<\/strong> Ofrece un extenso conjunto de APIs para gestionar tareas comunes, desde manipulaci\u00f3n de datos hasta el acceso a servicios en red y bases de datos.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p>Estas propiedades hacen que Oracle Java SE 21 LTS sea ideal para el desarrollo de soluciones empresariales, aplicaciones m\u00f3viles, de escritorio e incluso sistemas embebidos de alto rendimiento.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"3_Historia_del_Lenguaje_Java_y_su_Inventor\"><\/span>3. Historia del Lenguaje Java y su Inventor<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Java naci\u00f3 en Sun Microsystems a mediados de los a\u00f1os 90, gracias a la visi\u00f3n innovadora de James Gosling y su equipo, que buscaban crear un lenguaje sencillo, potente y portable para enfrentar los retos de un entorno digital en constante crecimiento. Desde su lanzamiento oficial en 1995, Java transform\u00f3 la industria del software, proporcionando soluciones robustas y escalables para el desarrollo de aplicaciones multiplataforma.<\/p>\r\n<p>En 2010, Sun Microsystems fue adquirida por <strong>Oracle<\/strong>, que desde entonces ha sido la principal entidad que impulsa y mantiene el lenguaje. Oracle ha continuado la evoluci\u00f3n de Java, aplicando mejoras en seguridad, rendimiento y modernizaci\u00f3n de sus APIs, consolidando a Oracle Java SE 21 LTS como la versi\u00f3n preferida para proyectos cr\u00edticos y de gran envergadura.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"4_Tecnologias_Java\"><\/span>4. Tecnolog\u00edas Java<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>El ecosistema de Java se extiende a diversas \u00e1reas para adaptarse a m\u00faltiples necesidades de desarrollo:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Java Standard Edition (SE):<\/strong> La base para el desarrollo de aplicaciones de escritorio y utilidades.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Java Enterprise Edition (EE):<\/strong> Orientada a aplicaciones distribuidas, servicios web y sistemas transaccionales.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Java Micro Edition (ME):<\/strong> Dise\u00f1ada para dispositivos m\u00f3viles y sistemas embebidos, aprovechando recursos limitados.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>JavaFX:<\/strong> Plataforma moderna para crear interfaces gr\u00e1ficas sofisticadas, superando a Swing en funcionalidad y rendimiento.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p>Cada tecnolog\u00eda se especializa en un \u00e1mbito espec\u00edfico, permitiendo aprovechar al m\u00e1ximo el potencial del lenguaje.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"5_%C2%BFQue_es_el_JDK\"><\/span>5. \u00bfQu\u00e9 es el JDK?<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>El JDK (Java Development Kit) de Oracle Java SE 21 LTS es el conjunto completo de herramientas necesarias para desarrollar, compilar, ejecutar y depurar aplicaciones Java. Entre sus componentes esenciales se encuentran:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>El Compilador (<\/strong><code class=\"\" data-line=\"\">javac<\/code><strong>):<\/strong> Convierte el c\u00f3digo fuente (.java) en bytecode (.class) para su ejecuci\u00f3n en la JVM.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>La JVM:<\/strong> Ejecuta el bytecode sobre una capa de abstracci\u00f3n del hardware, asegurando la portabilidad.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Las Librer\u00edas Est\u00e1ndar:<\/strong> Proveen un extenso conjunto de APIs listas para usar en cualquier proyecto.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Herramientas Complementarias:<\/strong> Incluye el depurador (<em>jdb<\/em>) para an\u00e1lisis en tiempo real, utilidades para generar documentaci\u00f3n y la herramienta <em>jar<\/em> para empaquetar aplicaciones.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p>Dominar el JDK es fundamental para aprovechar todas las ventajas que ofrece Oracle Java SE 21 LTS.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"6_Instalacion_del_JDK_de_Oracle_Java_SE_21_LTS_en_Diferentes_Sistemas_Operativos\"><\/span>6. Instalaci\u00f3n del JDK de Oracle Java SE 21 LTS en Diferentes Sistemas Operativos<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Las variables de entorno de Java son configuraciones globales que se establecen en el sistema operativo y que permiten que las herramientas y los programas relacionados con Java (como el compilador, la M\u00e1quina Virtual de Java y otros utilitarios) encuentren y utilicen correctamente los recursos necesarios para compilar y ejecutar aplicaciones.<\/p>\r\n<p>A continuaci\u00f3n, se detallan las principales variables de entorno en el contexto de Java y sus funciones:<\/p>\r\n<ol start=\"1\">\r\n<li>\r\n<p><strong>JAVA_HOME<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p><strong>\u00bfQu\u00e9 es?<\/strong> Es una variable que apunta a la carpeta ra\u00edz donde se encuentra instalado el JDK (Java Development Kit).<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>\u00bfPara qu\u00e9 sirve?<\/strong> Permite a los programas y a las herramientas de construcci\u00f3n (como Maven, Gradle, Ant, entre otros) ubicar de manera r\u00e1pida y sencilla todos los recursos del JDK, como el compilador (<code class=\"\" data-line=\"\">javac<\/code>), la M\u00e1quina Virtual de Java (<code class=\"\" data-line=\"\">java<\/code>) y otras utilidades. Es esencial para que los scripts y los IDEs sepan d\u00f3nde buscar el entorno de desarrollo de Java.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>PATH<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p><strong>\u00bfQu\u00e9 es?<\/strong> Es una variable que contiene una lista de directorios en los cuales el sistema operativo busca los ejecutables de los programas.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>\u00bfPara qu\u00e9 sirve?<\/strong> Al incluir el directorio <code class=\"\" data-line=\"\">bin<\/code> del JDK (usualmente referenciado a trav\u00e9s de <code class=\"\" data-line=\"\">JAVA_HOME<\/code>, por ejemplo, <code class=\"\" data-line=\"\">%JAVA_HOME%\\bin<\/code> en Windows o <code class=\"\" data-line=\"\">$JAVA_HOME\/bin<\/code> en Unix\/Linux\/macOS) en la variable de entorno <code class=\"\" data-line=\"\">PATH<\/code>, se permite que puedas ejecutar comandos como <code class=\"\" data-line=\"\">java<\/code>, <code class=\"\" data-line=\"\">javac<\/code>, <code class=\"\" data-line=\"\">jar<\/code> y otros desde cualquier ubicaci\u00f3n en la terminal sin tener que especificar la ruta completa.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>CLASSPATH<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p><strong>\u00bfQu\u00e9 es?<\/strong> Es una variable que indica al entorno de ejecuci\u00f3n de Java d\u00f3nde ubicar las clases y librer\u00edas externas que se necesitan para ejecutar un programa.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>\u00bfPara qu\u00e9 sirve?<\/strong> Durante la compilaci\u00f3n y la ejecuci\u00f3n, la JVM utiliza <code class=\"\" data-line=\"\">CLASSPATH<\/code> para buscar las definiciones de clases y paquetes necesarios. Si tu proyecto depende de librer\u00edas externas (como archivos JAR), puedes incluirlas en el <code class=\"\" data-line=\"\">CLASSPATH<\/code> para que sean accesibles. Aunque en muchos casos se recomienda dejarla en su valor predeterminado (generalmente el directorio actual, indicado por un \u201c.\u201d), en proyectos complejos o cuando se trabaja sin un gestor de dependencias, es \u00fatil configurarla expl\u00edcitamente.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n<p><strong>Resumen:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p><strong>JAVA_HOME<\/strong> se utiliza para decirle a tu sistema d\u00f3nde est\u00e1 instalado el JDK.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>PATH<\/strong> se configura para que puedas acceder a los ejecutables de Java sin proporcionar rutas completas cada vez.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>CLASSPATH<\/strong> ayuda a la JVM a ubicar clases y librer\u00edas necesarias para correr tus aplicaciones.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p>Estas variables son esenciales para la correcta configuraci\u00f3n del entorno de desarrollo de Java y aseguran que todas las herramientas funcionen de manera integrada y sin contratiempos. Mantenerlas configuradas correctamente es clave tanto para trabajar en la l\u00ednea de comandos como para utilizar IDEs y sistemas de construcci\u00f3n que dependen de estos valores.<\/p>\r\n<p>Para asegurar un entorno de desarrollo \u00f3ptimo, es esencial realizar una correcta instalaci\u00f3n del JDK y configurar las variables de entorno adecuadas. A continuaci\u00f3n, se detalla el proceso en Windows 11, macOS y MX\u2011Linux.<\/p>\r\n<figure id=\"attachment_4571\" aria-describedby=\"caption-attachment-4571\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-4571 size-medium\" src=\"http:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" srcset=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-300x168.jpg 300w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-1024x575.jpg 1024w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-768x431.jpg 768w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-100x56.jpg 100w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-1536x862.jpg 1536w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/windows-11-2048x1149.jpg 2048w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-4571\" class=\"wp-caption-text\">Windows 11<\/figcaption><\/figure>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"61_En_Windows_11\"><\/span>6.1. En Windows 11<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><strong>Paso 1 \u2013 Descarga e Instalaci\u00f3n del JDK:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Descarga el instalador (archivo <code class=\"\" data-line=\"\">.exe<\/code>) desde el para Oracle Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Ejecuta el instalador y sigue el asistente. Por defecto, el JDK se instala en:<\/p>\r\n<pre><code class=\"language-powershell\" data-line=\"\">C:\\Program Files\\Java\\jdk-21<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Paso 2 \u2013 Configuraci\u00f3n de Variables de Entorno:<\/strong><\/p>\r\n<ol>\r\n<li>\r\n<p><strong>JAVA_HOME:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Haz clic derecho en \u201cEste equipo\u201d y selecciona \u201cPropiedades\u201d.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Accede a \u201cConfiguraci\u00f3n avanzada del sistema\u201d y haz clic en \u201cVariables de entorno\u2026\u201d.<\/p>\r\n<\/li>\r\n<li>\r\n<p>En \u201cVariables del sistema\u201d, haz clic en \u201cNuevo\u2026\u201d y establece:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Nombre de la variable:<\/strong> <code class=\"\" data-line=\"\">JAVA_HOME<\/code><\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Valor:<\/strong><\/p>\r\n<pre><code class=\"language-powershell\" data-line=\"\">C:\\Program Files\\Java\\jdk-21<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>PATH:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>En la misma ventana, selecciona la variable <code class=\"\" data-line=\"\">Path<\/code> y haz clic en \u201cEditar\u2026\u201d.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Agrega una nueva entrada:<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">%JAVA_HOME%\\bin<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>CLASSPATH (Opcional):<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Para una configuraci\u00f3n completa, crea una nueva variable:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Nombre de la variable:<\/strong> <code class=\"\" data-line=\"\">CLASSPATH<\/code><\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Valor:<\/strong><\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">.;%JAVA_HOME%\\lib<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p><em>(El \u201c.\u201d indica el directorio actual; en Windows el separador es \u201c;\u201d).<\/em><\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n<p><strong>Paso 3 \u2013 Verificaci\u00f3n:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Abre el S\u00edmbolo del Sistema y ejecuta:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">java -version\njavac -version<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>La salida debe mostrar la versi\u00f3n 21 de Oracle Java, confirmando que la instalaci\u00f3n y configuraci\u00f3n son correctas.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<figure id=\"attachment_4577\" aria-describedby=\"caption-attachment-4577\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-4577 size-medium\" src=\"http:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W-300x169.webp\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W-300x169.webp 300w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W-1024x576.webp 1024w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W-768x432.webp 768w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W-100x56.webp 100w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/W.webp 1280w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-4577\" class=\"wp-caption-text\">MacOS<\/figcaption><\/figure>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"62_En_MacOS\"><\/span>6.2. En MacOS<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Debido a que no poseo un ordenador MacOS no puedo comprobar que esta soluci\u00f3n es la correcta y que funcione, me he guiado de Google para encontrar la soluci\u00f3n para instalar el JDK en los sistemas operativos de la manzana mordida.\u00a0<\/p>\r\n<p><strong>Paso 1 \u2013 Descarga e Instalaci\u00f3n del JDK:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Descarga el archivo <code class=\"\" data-line=\"\">.dmg<\/code> o <code class=\"\" data-line=\"\">.pkg<\/code> desde el para Oracle Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Ejecuta el instalador y sigue las instrucciones. Por defecto, el JDK se instala en:<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">\/Library\/Java\/JavaVirtualMachines\/jdk-21.jdk\/Contents\/Home<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Paso 2 \u2013 Configuraci\u00f3n de Variables de Entorno:<\/strong><\/p>\r\n<ol>\r\n<li>\r\n<p><strong>JAVA_HOME:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Abre el archivo de configuraci\u00f3n de tu shell (por ejemplo, <code class=\"\" data-line=\"\">~\/.zshrc<\/code> o <code class=\"\" data-line=\"\">~\/.bash_profile<\/code>) y a\u00f1ade:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export JAVA_HOME=\/Library\/Java\/JavaVirtualMachines\/jdk-21.jdk\/Contents\/Home<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>PATH:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>En el mismo archivo, a\u00f1ade:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export PATH=$JAVA_HOME\/bin:$PATH<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>CLASSPATH (Opcional):<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>A\u00f1ade tambi\u00e9n:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export CLASSPATH=.:$JAVA_HOME\/lib<\/code><\/pre>\r\n<p><em>(En macOS, \u201c:\u201d es el separador de rutas y \u201c.\u201d indica el directorio actual).<\/em><\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n<p><strong>Paso 3 \u2013 Aplicar la Configuraci\u00f3n y Verificar:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Guarda los cambios y recarga el archivo de configuraci\u00f3n:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">source ~\/.zshrc<\/code><\/pre>\r\n<p><em>(O <\/em><code class=\"\" data-line=\"\">source ~\/.bash_profile<\/code><em> seg\u00fan corresponda)<\/em><\/p>\r\n<\/li>\r\n<li>\r\n<p>Abre la Terminal y ejecuta:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">java -version \njavac -version<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>La salida debe confirmar la instalaci\u00f3n de Oracle Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3><img decoding=\"async\" class=\"size-medium wp-image-4578 aligncenter\" src=\"http:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/tux_kernel_350-300x300.webp\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/tux_kernel_350-300x300.webp 300w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/tux_kernel_350-150x150.webp 150w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/tux_kernel_350-100x100.webp 100w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/tux_kernel_350.webp 350w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/h3>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"63_En_Debian_Ubuntu_Linux_Mint_y_MX%E2%80%91Linux\"><\/span>6.3. En Debian, Ubuntu, Linux Mint y MX\u2011Linux<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>&nbsp;<\/p>\r\n<p><strong>Paso 1 \u2013 Instalaci\u00f3n del JDK:<\/strong><\/p>\r\n<p><em>Tienes dos opciones:<\/em><\/p>\r\n<p><strong>Opci\u00f3n A \u2013 Instalaci\u00f3n v\u00eda Gestor de Paquetes:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Si Oracle Java SE 21 LTS o una versi\u00f3n equivalente (como OpenJDK 21) est\u00e1 disponible en los repositorios, ejecuta:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">$ sudo apt install openjdk-21-jdk<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Opci\u00f3n B \u2013 Instalaci\u00f3n Manual:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Descarga el archivo desde Oracle, Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Extrae el contenido en un directorio, por ejemplo:<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">\/opt\/java\/jdk-21<\/code><\/pre>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Paso 2 \u2013 Configuraci\u00f3n de Variables de Entorno:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Abre tu archivo de configuraci\u00f3n de shell (por ejemplo, <code class=\"\" data-line=\"\">~\/.bashrc<\/code> o <code class=\"\" data-line=\"\">~\/.profile<\/code>) y a\u00f1ade:<\/p>\r\n<ol>\r\n<li>\r\n<p><strong>JAVA_HOME:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export JAVA_HOME=\/opt\/java\/jdk-21<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>PATH:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export PATH=$JAVA_HOME\/bin:$PATH<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>CLASSPATH (Opcional):<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">export CLASSPATH=.:$JAVA_HOME\/lib<\/code><\/pre>\r\n<p><em>(En Linux, \u201c:\u201d es el separador y \u201c.\u201d indica el directorio actual).<\/em><\/p>\r\n<\/li>\r\n<\/ol>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Paso 3 \u2013 Aplicar la Configuraci\u00f3n y Verificar:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p>Guarda los cambios y recarga el archivo:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">source ~\/.bashrc<\/code><\/pre>\r\n<p><em>(O <\/em><code class=\"\" data-line=\"\">source ~\/.profile<\/code><em>)<\/em><\/p>\r\n<\/li>\r\n<li>\r\n<p>En la terminal, verifica la instalaci\u00f3n:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">$ java -version \n$ javac -version<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>La salida debe mostrar Oracle Java SE 21 LTS, confirmando la correcta instalaci\u00f3n y configuraci\u00f3n.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"7_Compilacion_Ejecucion_Depuracion_y_Empaquetado_con_JAR\"><\/span>7. Compilaci\u00f3n, Ejecuci\u00f3n, Depuraci\u00f3n y Empaquetado con JAR<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"71_Compilacion_y_Ejecucion_desde_la_Linea_de_Comandos\"><\/span>7.1. Compilaci\u00f3n y Ejecuci\u00f3n desde la L\u00ednea de Comandos<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Considera el cl\u00e1sico ejemplo \u00abHola Mundo\u00bb:<\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">public class HolaMundo {\n    public static void main(String[] args) {\n        System.out.println(&quot;Hola Mundo&quot;);\n    }\n}<\/code><\/pre>\r\n<ol>\r\n<li>\r\n<p><strong>Compilaci\u00f3n:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">javac HolaMundo.java<\/code><\/pre>\r\n<p>Esto generar\u00e1 el archivo <code class=\"\" data-line=\"\">HolaMundo.class<\/code>.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Ejecuci\u00f3n:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">java HolaMundo<\/code><\/pre>\r\n<\/li>\r\n<\/ol>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"72_Depuracion_con_el_Depurador_JDB\"><\/span>7.2. Depuraci\u00f3n con el Depurador JDB<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Oracle Java SE 21 LTS incluye el depurador <em>jdb<\/em>, que permite inspeccionar el flujo de ejecuci\u00f3n y los valores de las variables. Por ejemplo, para calcular el factorial de un n\u00famero:<\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">public class DepuracionEjemplo {\n    public static void main(String[] args) {\n        int n = 5;\n        for (int i = 1; i &lt;= n; i++) {\n            int factorial = calcularFactorial(i);\n            System.out.println(&quot;El factorial de &quot; + i + &quot; es: &quot; + factorial);\n        }\n    }\n\n    public static int calcularFactorial(int num) {\n        int resultado = 1;\n        for (int i = 1; i &lt;= num; i++) {\n            resultado = resultado * i; \/\/ Punto de interrupci\u00f3n recomendado.\n        }\n        return resultado;\n    }\n}<\/code><\/pre>\r\n<p><strong>Pasos para usar jdb<\/strong><strong>:<\/strong><\/p>\r\n<ol>\r\n<li>\r\n<p>Compila el programa:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">javac DepuracionEjemplo.java<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>Inicia el depurador:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">jdb DepuracionEjemplo<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>Establece un breakpoint (por ejemplo, en la l\u00ednea del c\u00e1lculo):<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">stop at DepuracionEjemplo:15<\/code><\/pre>\r\n<p><em>(Ajusta el n\u00famero de l\u00ednea si es necesario.)<\/em><\/p>\r\n<\/li>\r\n<li>\r\n<p>Ejecuta el programa en modo depuraci\u00f3n:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">run<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>Inspecciona variables:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">print i \nprint resultado<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p>Utiliza <code class=\"\" data-line=\"\">step<\/code> para avanzar l\u00ednea a l\u00ednea y <code class=\"\" data-line=\"\">cont<\/code> para continuar hasta el siguiente breakpoint o finalizar.<\/p>\r\n<\/li>\r\n<\/ol>\r\n<h3 class=\"western\"><span class=\"ez-toc-section\" id=\"73_Empaquetado_y_Uso_de_Archivos_JAR\"><\/span>7.3. Empaquetado y Uso de Archivos JAR<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Empaquetar toda una aplicaci\u00f3n en un archivo JAR es esencial para su distribuci\u00f3n. Un JAR es un archivo comprimido que incluye el bytecode y todos los recursos necesarios, junto con un manifiesto que define el punto de entrada.<\/p>\r\n<h4 class=\"western\">Pasos para crear un archivo JAR:<\/h4>\r\n<ol>\r\n<li>\r\n<p><strong>Crear un archivo de manifiesto:<\/strong> Crea un archivo llamado <code class=\"\" data-line=\"\">manifest.txt<\/code> con el siguiente contenido:<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">Main-Class: HolaMundo<\/code><\/pre>\r\n<p><em>(Deja una l\u00ednea en blanco al final.)<\/em><\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Empaquetar el JAR:<\/strong> Ejecuta:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">jar cfm HolaMundo.jar manifest.txt HolaMundo.class<\/code><\/pre>\r\n<ul>\r\n<li>\r\n<p><code class=\"\" data-line=\"\">c<\/code> crea el archivo JAR.<\/p>\r\n<\/li>\r\n<li>\r\n<p><code class=\"\" data-line=\"\">f<\/code> define el nombre del archivo.<\/p>\r\n<\/li>\r\n<li>\r\n<p><code class=\"\" data-line=\"\">m<\/code> utiliza el manifiesto personalizado.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>\r\n<p><strong>Verificar el Contenido:<\/strong> Lista el contenido con:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">jar tf HolaMundo.jar<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>Ejecutar el JAR:<\/strong> Lanza la aplicaci\u00f3n con:<\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">java -jar HolaMundo.jar<\/code><\/pre>\r\n<p>La JVM usar\u00e1 el manifiesto para localizar el m\u00e9todo <code class=\"\" data-line=\"\">main<\/code>.<\/p>\r\n<\/li>\r\n<\/ol>\r\n<h2><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4580 aligncenter\" src=\"http:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage-300x124.jpg\" alt=\"\" width=\"300\" height=\"124\" srcset=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage-300x124.jpg 300w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage-1024x424.jpg 1024w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage-768x318.jpg 768w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage-100x41.jpg 100w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/teaserImage_xxxx_croppedTeaserImage.jpg 1140w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/h2>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"8_IDEs_de_Programacion_Java_de_Codigo_Abierto\"><\/span>8. IDEs de Programaci\u00f3n Java de C\u00f3digo Abierto<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Los Entornos de Desarrollo Integrados (IDEs) agilizan el desarrollo gracias a funcionalidades como autocompletado, refactorizaci\u00f3n y depuraci\u00f3n visual. Para Oracle Java SE 21 LTS se recomiendan:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Eclipse:<\/strong> Con un amplio ecosistema de plugins y una comunidad activa que facilita la gesti\u00f3n de proyectos complejos.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>NetBeans:<\/strong> Con integraci\u00f3n nativa con el JDK de Oracle, simplifica el desarrollo y la depuraci\u00f3n.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>IntelliJ IDEA Community Edition:<\/strong> Destacado por su autocompletado inteligente y potentes herramientas de refactorizaci\u00f3n.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Visual Studio Code (VS Code):<\/strong> Un editor ligero que, mediante extensiones especializadas (por ejemplo, el Java Extension Pack), permite gestionar proyectos, depurar y administrar dependencias de forma \u00e1gil y moderna.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"9_Gestion_de_Librerias_y_Dependencias_con_Maven\"><\/span>9. Gesti\u00f3n de Librer\u00edas y Dependencias con Maven<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Maven es la herramienta est\u00e1ndar para la gesti\u00f3n de proyectos Java. Entre sus ventajas destacan:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Centralizaci\u00f3n en <\/strong><code class=\"\" data-line=\"\">pom.xml<\/code><strong>:<\/strong> Todas las dependencias, plugins y configuraciones se definen en un \u00fanico archivo.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Automatizaci\u00f3n:<\/strong> Maven descarga, actualiza y organiza las librer\u00edas necesarias, lo que simplifica considerablemente el mantenimiento.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Estructura Estandarizada:<\/strong> Facilita la integraci\u00f3n continua y el despliegue automatizado siguiendo convenciones ampliamente reconocidas.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Ejemplo b\u00e1sico de <\/strong><code class=\"\" data-line=\"\">pom.xml<\/code><strong>:<\/strong><\/p>\r\n<p>xml<\/p>\r\n<pre><code class=\"language-apacheconf\" data-line=\"\">&lt;project xmlns=&quot;http:\/\/maven.apache.org\/POM\/4.0.0&quot; \n         xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; \n         xsi:schemaLocation=&quot;http:\/\/maven.apache.org\/POM\/4.0.0 \n         http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd&quot;&gt;\n    &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n    &lt;groupId&gt;com.ejemplo&lt;\/groupId&gt;\n    &lt;artifactId&gt;hola-mundo&lt;\/artifactId&gt;\n    &lt;version&gt;1.0-SNAPSHOT&lt;\/version&gt;\n    &lt;dependencies&gt;\n        &lt;!-- Dependencias definidas aqu\u00ed --&gt;\n    &lt;\/dependencies&gt;\n&lt;\/project&gt;<\/code><\/pre>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"10_Caracteristicas_de_Oracle_Java_SE_21_LTS\"><\/span>10. Caracter\u00edsticas de Oracle Java SE 21 LTS<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Oracle Java SE 21 LTS se destaca por:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Portabilidad Total:<\/strong> La generaci\u00f3n de bytecode permite ejecutar la misma aplicaci\u00f3n en m\u00faltiples sistemas sin modificaciones.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Seguridad y Robustez:<\/strong> Un manejo avanzado de excepciones y un Garbage Collector eficiente proporcionan un entorno fiable.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Orientaci\u00f3n a Objetos:<\/strong> Facilita la modularidad, reutilizaci\u00f3n y escalabilidad del c\u00f3digo, ideal para proyectos de gran envergadura.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Soporte de Concurrencia:<\/strong> Incorpora herramientas nativas para programaci\u00f3n multihilo y paralelizaci\u00f3n, favoreciendo aplicaciones de alto rendimiento.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Amplio Ecosistema:<\/strong> Compatible con extensas bibliotecas est\u00e1ndar, herramientas como Maven y diversos IDEs, cubriendo las necesidades del desarrollador moderno.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"11_Novedades_de_Oracle_Java_SE_21_LTS\"><\/span>11. Novedades de Oracle Java SE 21 LTS<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Esta versi\u00f3n LTS introduce mejoras orientadas a los desaf\u00edos actuales del desarrollo:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Optimizaci\u00f3n del Rendimiento:<\/strong> Mejoras en el arranque de la JVM y en la ejecuci\u00f3n de aplicaciones tanto en entornos locales como en la nube.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Refinamientos del Lenguaje:<\/strong> Expresiones lambda, <em>switch expressions<\/em> y <em>pattern matching<\/em> m\u00e1s potentes y concisos, facilitando la escritura de c\u00f3digo claro y eficiente.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Modernizaci\u00f3n de la API:<\/strong> Nuevas funcionalidades en colecciones, procesamiento de datos y operaciones de red, integrando paradigmas modernos.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Innovaciones en Concurrencia:<\/strong> La incorporaci\u00f3n de Virtual Threads y mejoras en la paralelizaci\u00f3n permiten desarrollar aplicaciones escalables y de alto rendimiento.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Seguridad Reforzada:<\/strong> Nuevos mecanismos de autenticaci\u00f3n y cifrado fortalecen la protecci\u00f3n frente a vulnerabilidades.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"12_Aplicaciones_y_Proyectos_que_se_Pueden_Desarrollar_en_Java\"><\/span>12. Aplicaciones y Proyectos que se Pueden Desarrollar en Java<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Oracle Java SE 21 LTS es un lenguaje vers\u00e1til que permite abordar una amplia gama de proyectos, tales como:<\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Aplicaciones Empresariales:<\/strong> Sistemas de gesti\u00f3n, CRMs y ERPs utilizando frameworks como Spring o Jakarta EE.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Aplicaciones Web:<\/strong> Desarrollo de sitios web y servicios RESTful mediante frameworks como Spring Boot y JavaServer Faces (JSF).<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Aplicaciones de Escritorio:<\/strong> Herramientas e interfaces complejas desarrolladas con JavaFX o Swing.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Aplicaciones M\u00f3viles:<\/strong> Aunque Android utiliza una versi\u00f3n modificada de Java, su ecosistema sigue siendo fundamental.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Microservicios y Cloud Computing:<\/strong> Implementaci\u00f3n de arquitecturas basadas en microservicios, ideales para el despliegue en la nube.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Aplicaciones Integradas e IoT:<\/strong> Desarrollo de soluciones para dispositivos embebidos o entornos con recursos limitados.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Juegos y Aplicaciones Multimedia:<\/strong> Desde simples juegos de escritorio hasta aplicaciones multimedia avanzadas.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Big Data y An\u00e1lisis de Datos:<\/strong> Frameworks como Apache Hadoop y Apache Spark, basados en Java, facilitan el procesamiento y an\u00e1lisis de grandes vol\u00famenes de informaci\u00f3n.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p>Estas posibilidades evidencian la versatilidad de Java y su capacidad para responder a las necesidades de distintos sectores.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"13_Programa_Explicativo_%C2%ABHola_Mundo%C2%BB_en_Java\"><\/span>13. Programa Explicativo \u00abHola Mundo\u00bb en Java<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>El siguiente es el cl\u00e1sico programa \u00abHola Mundo\u00bb, que ilustra la estructura b\u00e1sica de una aplicaci\u00f3n en Oracle Java SE 21 LTS:<\/p>\r\n<p>java<\/p>\r\n<pre><code class=\"language-java\" data-line=\"\">public class HolaMundo {\n    public static void main(String[] args) {\n        System.out.println(&quot;Hola Mundo&quot;);\n    }\n}<\/code><\/pre>\r\n<p><strong>Desglose del C\u00f3digo:<\/strong><\/p>\r\n<ul>\r\n<li>\r\n<p><strong>Definici\u00f3n de la Clase:<\/strong> Se declara la clase p\u00fablica <code class=\"\" data-line=\"\">HolaMundo<\/code>.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>M\u00e9todo Principal (<\/strong><code class=\"\" data-line=\"\">main<\/code><strong>):<\/strong> Es el punto de entrada del programa, definido como <code class=\"\" data-line=\"\">public\n\tstatic void main(String[] args)<\/code>.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Salida a Consola:<\/strong> La instrucci\u00f3n <code class=\"\" data-line=\"\">System.out.println(&quot;Hola Mundo&quot;);<\/code> imprime el mensaje en la terminal.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p><strong>Para compilar y ejecutar:<\/strong><\/p>\r\n<ol>\r\n<li>\r\n<p><strong>Compilaci\u00f3n:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">javac HolaMundo.java<\/code><\/pre>\r\n<\/li>\r\n<li>\r\n<p><strong>Ejecuci\u00f3n:<\/strong><\/p>\r\n<p>bash<\/p>\r\n<pre><code class=\"language-bash\" data-line=\"\">java HolaMundo<\/code><\/pre>\r\n<\/li>\r\n<\/ol>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"14_Conclusiones\"><\/span>14. Conclusiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Este cap\u00edtulo ha establecido las bases fundamentales para dominar Oracle Java SE 21 LTS. Se ha expuesto la filosof\u00eda del lenguaje, los principios de la Programaci\u00f3n Orientada a Objetos y se han detallado casos pr\u00e1cticos que abarcan desde la instalaci\u00f3n y configuraci\u00f3n del JDK en distintos sistemas operativos hasta el ciclo completo de desarrollo de una aplicaci\u00f3n (compilaci\u00f3n, ejecuci\u00f3n, depuraci\u00f3n y empaquetado en archivos JAR). Adem\u00e1s, se ha mostrado la gran versatilidad de Java, que permite desarrollar proyectos en diversas \u00e1reas, desde sistemas empresariales hasta aplicaciones de Big Data y IoT.<\/p>\r\n<p>El ejemplo de empaquetado en JAR y el uso del depurador <em>jdb<\/em> resaltan la importancia de comprender el flujo interno del programa para detectar y corregir errores eficientemente.<\/p>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"15_Resumen_del_Capitulo\"><\/span>15. Resumen del Cap\u00edtulo<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<ul>\r\n<li>\r\n<p><strong>Filosof\u00eda y Fundamentos:<\/strong> Principios de robustez, seguridad y portabilidad que sustentan Oracle Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Instalaci\u00f3n y Configuraci\u00f3n del JDK:<\/strong> Gu\u00eda detallada para Windows 11, macOS y MX\u2011Linux, con la configuraci\u00f3n completa de las variables de entorno (JAVA_HOME, PATH y CLASSPATH opcional).<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Ciclo de Vida de una Aplicaci\u00f3n:<\/strong> Proceso que abarca desde la compilaci\u00f3n y ejecuci\u00f3n hasta la depuraci\u00f3n (<em>jdb<\/em>) y empaquetado en archivos JAR.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Novedades y Caracter\u00edsticas:<\/strong> Mejoras en rendimiento, refinamientos en el lenguaje, modernizaci\u00f3n de la API, innovaciones en concurrencia y seguridad reforzada.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Aplicaciones y Proyectos:<\/strong> Amplias posibilidades que abarcan desde aplicaciones empresariales y web hasta IoT, videojuegos y Big Data.<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Ejemplo Pr\u00e1ctico:<\/strong> El programa \u00abHola Mundo\u00bb ejemplifica el flujo b\u00e1sico de desarrollo con Oracle Java SE 21 LTS.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"16_Referencias\"><\/span>16. Referencias<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<ol>\r\n<li>\r\n<p><strong>Oracle Java Official Site:<\/strong> Descargas e informaci\u00f3n oficial de Oracle Java SE:<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>OpenJDK:<\/strong> Documentaci\u00f3n y recursos del proyecto OpenJDK:<\/p>\r\n<\/li>\r\n<li>\r\n<p><strong>Apache Maven:<\/strong> Tutoriales y documentaci\u00f3n para la gesti\u00f3n de proyectos Java:<\/p>\r\n<\/li>\r\n<\/ol>\r\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"17_Mirada_Hacia_Adelante\"><\/span>17. Mirada Hacia Adelante<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Con los fundamentos adquiridos en este cap\u00edtulo, estar\u00e1s listo para adentrarte en temas m\u00e1s complejos, tales como la programaci\u00f3n modular, la integraci\u00f3n continua, el despliegue automatizado y la creaci\u00f3n de microservicios en entornos distribuidos. La experiencia adquirida en la configuraci\u00f3n, manejo de archivos JAR y el dominio de t\u00e9cnicas de depuraci\u00f3n y optimizaci\u00f3n te preparar\u00e1 para abordar proyectos de mayor envergadura y complejidad.<\/p>\r\n<p>Si en alg\u00fan momento se identifica que falta alg\u00fan apartado relevante en este cap\u00edtulo, se integrar\u00e1 de forma din\u00e1mica en futuras revisiones para mantener esta gu\u00eda completa y actualizada.<\/p>\r\n<p>Este documento revisado y ampliado ofrece una visi\u00f3n global y detallada de los fundamentos esenciales de Oracle Java SE 21 LTS. Con esta referencia, cuentas con todas las secciones necesarias para iniciar tu viaje en el fascinante mundo de Java, y se deja abierta la posibilidad de a\u00f1adir o ampliar contenido en el futuro seg\u00fan las necesidades del aprendizaje y la evoluci\u00f3n tecnol\u00f3gica.<\/p>\r\n<p>\u00a1Bienvenido al universo de Oracle Java SE 21 LTS y a un viaje lleno de desarrollo, innovaci\u00f3n y descubrimientos!<\/p>\r\n<p>&nbsp;<\/p>\n<div style='text-align:center' class='yasr-auto-insert-overall'><\/div><div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Curso de Oracle Java SE 21 LTS a Fondo En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la versi\u00f3n LTS respaldada por Oracle. Aqu\u00ed aprender\u00e1s sobre los or\u00edgenes e historia del lenguaje, su filosof\u00eda y la Programaci\u00f3n Orientada a Objetos (POO), hasta [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4620,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5,176,2,265],"tags":[13,14,19],"class_list":["post-4563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo","category-desarrollo-web","category-informatica","category-java","tag-ide","tag-java","tag-mx-linux"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com<\/title>\n<meta name=\"description\" content=\"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com\" \/>\n<meta property=\"og:description\" content=\"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/\" \/>\n<meta property=\"og:site_name\" content=\"javiercachon.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javiercachon82\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/javiercachon82\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-08T15:39:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-15T11:53:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Javier Cach\u00f3n Garrido\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/x.com\/udegeek\" \/>\n<meta name=\"twitter:site\" content=\"@udegeek\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javier Cach\u00f3n Garrido\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/\"},\"author\":{\"name\":\"Javier Cach\u00f3n Garrido\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"headline\":\"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS.\",\"datePublished\":\"2025-05-08T15:39:36+00:00\",\"dateModified\":\"2025-05-15T11:53:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/\"},\"wordCount\":3546,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"image\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg\",\"keywords\":[\"IDE\",\"Java\",\"MX-Linux\"],\"articleSection\":[\"Desarrollo\",\"Desarrollo Web\",\"Inform\u00e1tica\",\"Java\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/\",\"name\":\"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg\",\"datePublished\":\"2025-05-08T15:39:36+00:00\",\"dateModified\":\"2025-05-15T11:53:58+00:00\",\"description\":\"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#primaryimage\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg\",\"contentUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/capitulo-1-programacion-en-oracle-java-se-21\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"inicio\",\"item\":\"https:\\\/\\\/javiercachon.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/\",\"name\":\"javiercachon.com\",\"description\":\"es una plataforma educativa revolucionaria que busca democratizar el acceso al conocimiento en inform\u00e1tica.\",\"publisher\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"alternateName\":\"javiercachon.com\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\",\"name\":\"Javier Cach\u00f3n Garrido\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"contentUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"width\":250,\"height\":34,\"caption\":\"Javier Cach\u00f3n Garrido\"},\"logo\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\"},\"description\":\"Javier Cach\u00f3n Garrido es un experto en inform\u00e1tica, apasionado por el c\u00f3digo abierto y la educaci\u00f3n tecnol\u00f3gica. Como fundador de JavierCachon.com, impulsa la formaci\u00f3n en GNU\\\/Linux y software libre, promoviendo el aprendizaje accesible y colaborativo. Su misi\u00f3n es democratizar el conocimiento en TI, ofreciendo recursos gratuitos y de calidad para profesionales y entusiastas del sector. Es un profeta y predicador que evangeliza la tecnolog\u00eda, la inform\u00e1tica y telecomunicaciones, acomp\u00e1\u00f1ale en su aventura y pasi\u00f3n por los sistemas operativos abiertos GNU\\\/Linux.\",\"sameAs\":[\"https:\\\/\\\/javiercachon.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/javiercachon82\",\"https:\\\/\\\/www.instagram.com\\\/edugeek\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/javiercachongarrido\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/x.com\\\/udegeek\",\"https:\\\/\\\/www.youtube.com\\\/@edugeek\",\"https:\\\/\\\/wiki.javiercachon.com\\\/wiki\\\/index.php\\\/Usuario:Ojosdegato\"],\"url\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/author\\\/ojosdegato\\\/\"},false]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com","description":"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/","og_locale":"es_ES","og_type":"article","og_title":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com","og_description":"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.","og_url":"https:\/\/javiercachon.com\/es\/capitulo-1-programacion-en-oracle-java-se-21\/","og_site_name":"javiercachon.com","article_publisher":"https:\/\/www.facebook.com\/javiercachon82","article_author":"https:\/\/www.facebook.com\/javiercachon82","article_published_time":"2025-05-08T15:39:36+00:00","article_modified_time":"2025-05-15T11:53:58+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","type":"image\/jpeg"}],"author":"Javier Cach\u00f3n Garrido","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/x.com\/udegeek","twitter_site":"@udegeek","twitter_misc":{"Escrito por":"Javier Cach\u00f3n Garrido","Tiempo de lectura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#article","isPartOf":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/"},"author":{"name":"Javier Cach\u00f3n Garrido","@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"headline":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS.","datePublished":"2025-05-08T15:39:36+00:00","dateModified":"2025-05-15T11:53:58+00:00","mainEntityOfPage":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/"},"wordCount":3546,"commentCount":0,"publisher":{"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"image":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#primaryimage"},"thumbnailUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","keywords":["IDE","Java","MX-Linux"],"articleSection":["Desarrollo","Desarrollo Web","Inform\u00e1tica","Java"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/","url":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/","name":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS. | javiercachon.com","isPartOf":{"@id":"https:\/\/javiercachon.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#primaryimage"},"image":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#primaryimage"},"thumbnailUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","datePublished":"2025-05-08T15:39:36+00:00","dateModified":"2025-05-15T11:53:58+00:00","description":"En este primer cap\u00edtulo se establecen los fundamentos para trabajar con Oracle Java SE 21 LTS, la \u00faltima edici\u00f3n respaldada por Oracle.","breadcrumb":{"@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#primaryimage","url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","contentUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/javiercachon.com\/capitulo-1-programacion-en-oracle-java-se-21\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"inicio","item":"https:\/\/javiercachon.com\/"},{"@type":"ListItem","position":2,"name":"Cap\u00edtulo 1: Introducci\u00f3n a la programaci\u00f3n en Oracle Java SE 21 LTS."}]},{"@type":"WebSite","@id":"https:\/\/javiercachon.com\/es\/#website","url":"https:\/\/javiercachon.com\/es\/","name":"javiercachon.com","description":"es una plataforma educativa revolucionaria que busca democratizar el acceso al conocimiento en inform\u00e1tica.","publisher":{"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"alternateName":"javiercachon.com","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/javiercachon.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997","name":"Javier Cach\u00f3n Garrido","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","contentUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","width":250,"height":34,"caption":"Javier Cach\u00f3n Garrido"},"logo":{"@id":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg"},"description":"Javier Cach\u00f3n Garrido es un experto en inform\u00e1tica, apasionado por el c\u00f3digo abierto y la educaci\u00f3n tecnol\u00f3gica. Como fundador de JavierCachon.com, impulsa la formaci\u00f3n en GNU\/Linux y software libre, promoviendo el aprendizaje accesible y colaborativo. Su misi\u00f3n es democratizar el conocimiento en TI, ofreciendo recursos gratuitos y de calidad para profesionales y entusiastas del sector. Es un profeta y predicador que evangeliza la tecnolog\u00eda, la inform\u00e1tica y telecomunicaciones, acomp\u00e1\u00f1ale en su aventura y pasi\u00f3n por los sistemas operativos abiertos GNU\/Linux.","sameAs":["https:\/\/javiercachon.com\/","https:\/\/www.facebook.com\/javiercachon82","https:\/\/www.instagram.com\/edugeek\/","https:\/\/www.linkedin.com\/in\/javiercachongarrido\/","https:\/\/x.com\/https:\/\/x.com\/udegeek","https:\/\/www.youtube.com\/@edugeek","https:\/\/wiki.javiercachon.com\/wiki\/index.php\/Usuario:Ojosdegato"],"url":"https:\/\/javiercachon.com\/es\/author\/ojosdegato\/"},false]}},"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/05\/Oracle-Java-21-SE-with-MX-Linux-and-a-steaming-cup-of-coffee-at-1080p.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts\/4563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/comments?post=4563"}],"version-history":[{"count":0,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts\/4563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/media\/4620"}],"wp:attachment":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/media?parent=4563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/categories?post=4563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/tags?post=4563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}