Respuestas Entrega Variables de Entorno y Java PDF

Summary

This document appears to be an academic exercise, potentially a programming assignment or quiz, on the topic of Java variables and the environment. It contains questions about Java Virtual Machines (JVMs), JDKs, JREs, and environment variables such as PATH and JAVA_HOME. It is focused on the technical aspects and practical implementations of these concepts in the Java ecosystem.

Full Transcript

‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭VARIABLES DE ENTORNO Y JAVA‬ ‭Respuestas al ejercicio comentadas y ampliadas.‬ ‭Ejercicio:‬ ‭ ara ello, se deberán‬‭contestar las siguientes preguntas‬‭y‬‭aportar cap...

‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭VARIABLES DE ENTORNO Y JAVA‬ ‭Respuestas al ejercicio comentadas y ampliadas.‬ ‭Ejercicio:‬ ‭ ara ello, se deberán‬‭contestar las siguientes preguntas‬‭y‬‭aportar capturas de tu sistema‬‭y‬‭explicar‬ P ‭toda la información que allí aparece‬‭.‬ ‭.‬ 1 ¿‭ Qué es la JVM?‬ ‭2.‬ ‭¿Qué es la JDK? ¿Qué componentes la forman?‬ ‭3.‬ ‭¿Cuál es la diferencia entre JDK y JRE?‬ ‭4.‬ ‭¿Qué es una variable de entorno? ¿Cómo se cambia su valor en tu SO desde la‬ ‭terminal?‬ ‭5.‬ ‭¿Qué propósito tiene la variable de entorno PATH? ¿Qué valor tiene en tu equipo‬ ‭(rutas)? ¿Qué separador se usa en tu OS?‬ ‭6.‬ ‭¿Qué ruta se debe incluir en el PATH cuando se instala la JDK?‬ ‭7.‬ ‭¿Qué es la variable JAVA_HOME y cuál es su propósito? ¿Cuál es su valor en tu‬ ‭sistema?‬ ‭8.‬ ‭¿Qué es la variable de entorno CLASSPATH y cuál es su propósito?‬ ‭9.‬ ‭¿Cómo se podría cambiar la JDK que utiliza un proyecto en VSCode?‬ ‭10.‬‭Haz un Hola Mundo en VSCode en tu equipo y describe qué ocurre cuando pulsas el‬ ‭botón play (los comandos que se ejecutan en la terminal al hacerlo).‬ ‭1.‬‭¿Qué es la JVM?‬ ‭ as‬ ‭siglas‬ ‭JVM‬ ‭corresponden‬ ‭a‬‭J‭a L ‬ va‬‭V‭i‬rtual‬‭M‭a ‬ chine‬‭y‬‭se‬‭refieren‬‭a‬‭la‬‭máquina‬‭virtual‬‭de‬ ‭Java.‬ ‭Una‬ ‭máquina‬ ‭virtual‬ ‭o‬‭Virtual‬‭Machine‬‭(VM)‬‭es‬‭simplemente‬‭un‬‭software‬‭que‬‭simula‬ ‭un‬‭computador‬‭pero‬‭oculta‬‭el‬‭sistema‬‭operativo‬‭y‬‭el‬‭hardware‬‭subyacentes‬‭a‬‭los‬‭programas‬ ‭que‬‭interactúan‬‭con‬‭él.‬‭Si‬‭la‬‭misma‬‭VM‬‭se‬‭implementa‬‭en‬‭muchas‬‭plataformas‬‭informáticas‬ ‭(MacOS,‬ ‭Windows,Linux,‬ ‭Android,‬ ‭etc.),‬ ‭las‬ ‭aplicaciones‬ ‭escritas‬ ‭para‬ ‭ese‬ ‭tipo‬ ‭de‬ ‭VM‬ ‭pueden utilizarse en todas esas plataformas.‬ ‭ l‬ ‭compilador‬ ‭de‬ ‭Java‬ ‭(‭ E j ‬ avac‬ ‭)‬ ‭convierte‬ ‭el‬ ‭código‬ ‭fuente‬ ‭(.java)‬ ‭en‬ ‭bytecodes‬ ‭que‬ ‭representan‬ ‭las‬ ‭instrucciones‬ ‭a‬ ‭ejecutar‬ ‭en‬ ‭dicha‬ ‭máquina‬ ‭virtual,‬ ‭es‬ ‭decir,‬ ‭la‬ ‭máquina‬ ‭virtual‬ ‭de‬ ‭Java‬ ‭ejecuta‬ ‭bytecode‬ ‭(.class).‬ ‭Al‬ ‭contrario‬ ‭de‬ ‭las‬ ‭instrucciones‬ ‭en‬ ‭lenguaje‬ ‭máquina,‬ ‭que‬ ‭dependen‬ ‭de‬ ‭la‬ ‭plataforma‬‭,‬ ‭es‬ ‭decir,‬ ‭del‬ ‭hardware‬ ‭específico‬ ‭(ARM,‬ ‭x64,‬ ‭x86,‬ ‭etc.)‬ ‭como‬ ‭sucede‬ ‭en‬ ‭C,‬ ‭las‬ ‭instrucciones‬ ‭en‬ ‭bytecode‬ ‭son‬ ‭independientes‬ ‭de‬ ‭la‬ ‭plataforma‬‭.‬ ‭Así‬ ‭pues,‬ ‭los‬ ‭bytecodes‬ ‭de‬ ‭Java‬ ‭son‬ ‭portables‬‭:‬ ‭sin‬ ‭recompilar‬ ‭el‬ ‭código‬ ‭fuente,‬ ‭las‬ ‭mismas‬ ‭instrucciones‬ ‭de‬ ‭bytecode‬ ‭pueden‬ ‭ejecutarse‬ ‭en‬ ‭cualquier‬ ‭plataforma‬ ‭que‬ ‭contenga‬ ‭una‬ ‭JVM‬ ‭que‬ ‭entienda‬ ‭la‬ ‭versión‬ ‭de‬ ‭Java‬ ‭en‬ ‭la‬ ‭que‬ ‭se‬ ‭compilaron‬ ‭los‬ ‭bytecodes. La JVM se invoca mediante el binario:‬‭ java‬‭.‬ ‭1‬ ‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭2.‬‭¿Qué es la JDK? ¿Qué componentes la forman?‬ ‭ as‬‭siglas‬‭JDK‬‭corresponden‬‭a‬‭J‭a L ‬ va‬‭D‭e ‬ velopment‬‭K‬‭it‬‭que‬‭hace‬‭referencia‬‭a‬‭un‬‭conjunto‬‭de‬ ‭herramientas‬ ‭de‬ ‭desarrollo‬ ‭para‬ ‭la‬‭creación‬‭de‬‭aplicaciones‬‭en‬‭el‬‭lenguaje‬‭Java.‬‭Entre‬‭las‬ ‭múltiples‬ ‭herramientas‬ ‭que‬ ‭puede‬ ‭contener‬ ‭este‬ ‭kit‬ ‭se‬ ‭encuentran:‬ ‭el‬ ‭JRE‬‭(Java‬‭Runtime‬ ‭Environment)‬ ‭que‬ ‭incluye‬ ‭la‬ ‭JVM‬ ‭y‬ ‭todo‬ ‭lo‬ ‭necesario‬ ‭para‬‭ejecutar‬‭aplicaciones‬‭Java,,‬‭un‬ ‭compilador‬ ‭(javac)‬ ‭y‬ ‭otras‬ ‭herramientas‬ ‭que‬ ‭puedan‬ ‭ser‬ ‭útiles‬ ‭para‬ ‭el‬ ‭desarrollo‬ ‭Java‬ ‭(depurador, etc).‬ ‭3.‬‭¿Cuál es la diferencia entre JDK y JRE?‬ ‭ ‬ ‭diferencia‬ ‭de‬‭la‬‭JDK,‬‭el‬‭JRE‬‭J‭a A ‬ va‬‭R‬‭untime‬‭E‬‭nvironment‬‭es‬‭un‬‭subconjunto‬‭del‬‭JDK‬‭que‬ ‭incluye‬ ‭todo‬ ‭lo‬ ‭necesario‬ ‭para‬ ‭ejecutar‬ ‭aplicaciones‬ ‭Java,‬ ‭pero‬ ‭no‬ ‭incluye‬ ‭el‬ ‭compilador‬ ‭Java‬‭ni‬‭otras‬‭herramientas‬‭de‬‭desarrollo.‬‭El‬‭JRE‬‭suele‬‭ser‬‭el‬‭software‬‭que‬‭tienen‬‭instalado‬ ‭los usuarios de aplicaciones en Java que no se dedican al desarrollo de aplicaciones.‬ ‭ omo‬ ‭se‬ ‭ha‬ ‭tratado‬ ‭en‬ ‭teoría‬ ‭existen‬ ‭diferentes‬ ‭distribuidores‬ ‭de‬ ‭JDKs‬ ‭y‬ ‭diferentes‬ C ‭versiones‬ ‭de‬ ‭cada‬ ‭una‬ ‭de‬ ‭ellas,‬ ‭siendo‬ ‭las‬ ‭versiones‬ ‭LTS‬ ‭(‬‭L‭o ‬ ng‬ ‭T‭e ‬ rm‬ ‭S‭u ‬ pport‬‭)‬ ‭las‬ ‭recomendadas para desarrollar y desplegar software escrito en Java en producción.‬ ‭4.‬‭¿Qué‬ ‭es‬ ‭una‬ ‭variable‬ ‭de‬ ‭entorno?‬ ‭¿Cómo‬ ‭se‬ ‭cambia su valor en tu SO desde la terminal?‬ ‭ na‬ ‭variable‬ ‭de‬‭entorno‬‭es‬‭un‬‭valor‬‭dinámico‬‭que‬‭puede‬‭afectar‬‭el‬‭comportamiento‬‭de‬‭los‬ U ‭procesos‬‭y‬‭de‬‭las‬‭aplicaciones‬‭que‬‭se‬‭ejecutan‬‭en‬‭el‬‭sistema‬‭operativo.‬‭Estas‬‭variables‬‭son‬ ‭utilizadas‬ ‭para‬ ‭configurar‬ ‭parámetros‬ ‭como‬‭la‬‭ubicación‬‭de‬‭archivos‬‭ejecutables,‬‭opciones‬ ‭de configuración y entornos de desarrollo.‬ ‭ ependiendo‬ ‭del‬ ‭SO‬ ‭que‬ ‭se‬ ‭utilice,‬ ‭estas‬ ‭variables‬ ‭podrán‬ ‭ser‬ ‭creadas‬ ‭o‬‭modificadas‬‭de‬ D ‭una forma distinta desde la terminal. Veamos algunos ejemplos:‬ ‭Linux/macOS (bash terminal):‬‭Para establecer una variable temporal:‬ ‭Unset‬ export‬‭ ‭ MI_VARIABLE="valor_nuevo"‬ ‭Windows (cmd):‬‭Para establecer una variable temporalmente:‬ ‭Unset‬ set‬‭ ‭ JAVA_HOME=C:\Program‬‭ Files\Java\jdk-17‬ ‭2‬ ‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭ i‬ ‭por‬ ‭el‬ ‭contrario‬ ‭queremos‬ ‭que‬ ‭esta‬ ‭variable‬ ‭permanezca‬ ‭tras‬ ‭un‬ ‭reinicio,‬ ‭deberemos‬ S ‭editar‬ ‭el‬ ‭archivo‬ ‭de‬ ‭configuración‬ ‭de‬ ‭la‬ ‭terminal‬ ‭para‬ ‭que‬ ‭haga‬ ‭este‬ ‭procedimiento‬ ‭al‬ ‭iniciarse:‬ ‭ inux/macOS:‬‭Puedes‬‭utilizar‬‭~/.bashrc,‬‭~/.bash_profile,‬‭o‬‭~/.profile‬‭dependiendo‬‭del‬‭shell‬ L ‭y la distribución.‬ ‭Unset‬ echo 'export MI_VARIABLE="valor_permanente"' >> ~/.bashrc‬ ‭ ‭Para aplicar los cambios y cargar el fichero de configuración:‬ ‭Unset‬ source‬‭ ‭ ~/.bashrc‬ ‭Windows:‬ ‭.‬ A 1 ‭ bre el menú de Configuración del sistema.‬ ‭2.‬ ‭Ve a Sistema > Configuración avanzada del sistema > Variables de entorno.‬ ‭3.‬ ‭Añade o edita la variable en las secciones de usuario o del sistema.‬ ‭ lternativamente,‬ ‭puedes‬ ‭hacer‬ ‭lo‬ ‭mismo‬ ‭desde‬ ‭PowerShell‬ ‭(ejecutado‬ ‭como‬ A ‭Administrador) utilizando el siguiente comando (para todas las sesiones)::‬ ‭Unset‬ [System.Environment]::SetEnvironmentVariable('MI_VARIABLE', 'valor_permanente', 'Machine')‬ ‭ ‭3‬ ‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭5.‬‭¿Qué‬ ‭propósito‬ ‭tiene‬ ‭la‬ ‭variable‬ ‭de‬ ‭entorno‬ ‭PATH?‬ ‭¿Qué‬ ‭valor‬ ‭tiene‬ ‭en‬ ‭tu‬ ‭equipo‬ ‭(rutas)?‬ ‭¿Qué separador se usa en tu OS?‬ ‭ a‬‭variable‬‭de‬‭entorno‬‭ L PATH‬‭tiene‬‭como‬‭propósito‬‭indicar‬‭al‬‭sistema‬‭operativo‬‭dónde‬‭(qué‬ ‭ruta) buscar los archivos ejecutables cuando se introduce un comando en la terminal.‬ ‭PATH‬ ‭contiene‬ ‭una‬ ‭lista‬ ‭de‬ ‭directorios‬ ‭en‬ ‭los‬ ‭que‬ ‭el‬ ‭sistema‬ ‭buscará‬ ‭comandos‬ ‭o‬ ‭programas‬ ‭(también‬ ‭llamados‬ ‭binarios)‬ ‭cuando‬ ‭se‬ ‭intenten‬ ‭ejecutar‬ ‭sin‬ ‭especificar‬ ‭la‬‭ruta‬ ‭completa.‬ ‭Dependiendo del SO esta variable puede tener un aspecto ligeramente diferente:‬ ‭Windows (CMD como administrador):‬ ‭Unset‬ echo‬‭ ‭ %Path%‬ ‭C:\Windows\System32‬‭;‭C ‬ :\Program Files\Java\jdk-17\bin;C:\Python39\Scripts‬ ‭El separador de las múltiples rutas donde buscar binarios es el‬‭;‬ ‭Linux/macOS:‬ ‭Unset‬ echo $PATH‬ ‭ ‭/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/usuario/bin‬ ‭El separador de las múltiples rutas donde buscar binarios es‬‭:‬ ‭6.‬‭¿Qué‬‭ruta‬‭se‬‭debe‬‭incluir‬‭en‬‭el‬‭PATH‬‭cuando‬‭se‬ ‭instala la JDK?‬ ‭ l‬‭instalar‬‭la‬‭JDK‬‭se‬‭deberá‬‭añadir‬‭al‬‭PATH‬‭del‬‭sistema‬‭la‬‭ruta‬‭del‬‭directorio‬‭bin‬‭(directorio‬ A ‭que‬ ‭contiene‬ ‭los‬ ‭ejecutables,‬ ‭los‬ ‭binarios‬ ‭de‬ ‭la‬ ‭JDK)‬ ‭para‬ ‭que‬ ‭sea‬ ‭posible‬ ‭ejecutar‬ ‭las‬ ‭herramientas‬ ‭de‬ ‭desarrollo‬ ‭de‬ ‭Java‬ ‭(como‬ ‭javac,‬ ‭java,‬ ‭etc.)‬ ‭desde‬ ‭cualquier‬ ‭lugar‬ ‭de‬ ‭la‬ ‭terminal.‬‭Por‬‭ejemplo,‬‭si‬‭la‬‭JDK‬‭está‬‭instalada‬‭en‬‭C:\Program‬‭Files\Java\jdk-17,‬‭la‬‭ruta‬‭que‬ ‭deberías agregar al PATH sería: C:\Program Files\Java\jdk-17‬‭\bin‬ ‭4‬ ‭Programación III - Grado en Ingeniería Informática‬ ‭Universidad de Salamanca‬ ‭7.‬‭¿Qué‬ ‭es‬ ‭la‬ ‭variable‬ ‭JAVA_HOME‬ ‭y‬ ‭cuál‬ ‭es‬ ‭su‬ ‭propósito? ¿Cuál es su valor en tu sistema?‬ ‭ a‬ ‭variable‬ ‭JAVA_HOME‬ ‭es‬ ‭una‬ ‭variable‬ ‭de‬ ‭entorno‬ ‭que‬ ‭apunta‬ ‭al‬ ‭directorio‬ ‭donde‬ ‭está‬ L ‭instalada‬ ‭la‬ ‭Java‬ ‭Development‬ ‭Kit‬ ‭(JDK),‬ ‭es‬ ‭decir,‬ ‭al‬ ‭directorio‬ ‭raíz‬ ‭de‬ ‭la‬ ‭instalación‬‭.‬ ‭Siguiendo‬‭con‬‭el‬‭ejemplo‬‭anterior,‬‭si‬‭la‬‭JDK‬‭está‬‭instalada‬‭en‬‭C:\Program‬‭Files\Java\jdk-17,‬ ‭ese sería el valor de la variable JAVA_HOME.‬ ‭ u‬ ‭propósito‬‭principal‬‭es‬‭indicar‬‭a‬‭las‬‭aplicaciones‬‭y‬‭herramientas‬‭dónde‬‭encontrar‬‭la‬‭JDK‬ S ‭para‬ ‭compilar,‬ ‭ejecutar‬ ‭y‬ ‭gestionar‬ ‭aplicaciones‬ ‭Java.‬ ‭JAVA_HOME‬ ‭es‬ ‭utilizada,‬ ‭por‬ ‭ejemplo,‬ ‭por‬ ‭muchos‬‭servidores‬‭de‬‭aplicaciones,‬‭entornos‬‭de‬‭desarrollo‬‭y‬‭herramientas‬‭de‬ ‭construcción‬ ‭de‬ ‭proyectos‬ ‭(como‬ ‭Maven‬ ‭o‬ ‭Gradle)‬ ‭para‬ ‭localizar‬ ‭la‬ ‭instalación‬ ‭de‬ ‭Java‬ ‭y‬ ‭acceder a sus herramientas.‬ ‭8.‬‭¿Qué‬ ‭es‬ ‭la‬ ‭variable‬ ‭de‬ ‭entorno‬ ‭CLASSPATH‬ ‭y‬ ‭cuál es su propósito?‬ ‭ a‬ ‭variable‬ ‭de‬ ‭entorno‬‭CLASSPATH‬‭se‬‭utiliza‬‭en‬‭Java‬‭para‬‭especificar‬‭la‬‭ubicación‬‭de‬‭las‬ L ‭clases‬ ‭y‬ ‭paquetes‬ ‭que‬ ‭el‬ ‭sistema‬ ‭necesita‬‭para‬‭compilar‬‭y‬‭ejecutar‬‭programas‬‭Java.‬‭Esta‬ ‭variable‬ ‭le‬ ‭indica‬ ‭a‬ ‭la‬ ‭Java‬ ‭Virtual‬ ‭Machine‬ ‭(JVM)‬ ‭y‬ ‭a‬ ‭otros‬ ‭programas‬ ‭como‬ ‭javac‬ ‭(el‬ ‭compilador) dónde buscar archivos.class o.jar que no estén en los directorios por defecto.‬ ‭ e‬‭permite‬‭al‬‭compilador‬‭y‬‭a‬‭la‬‭JVM‬‭localizar‬‭las‬‭clases‬‭y‬‭librerías‬‭necesarias‬‭para‬‭ejecutar‬ L ‭un‬ ‭programa.‬ ‭Esto‬ ‭es‬ ‭especialmente‬ ‭importante‬ ‭cuando‬ ‭se‬ ‭trabaja‬ ‭con‬ ‭aplicaciones‬ ‭que‬ ‭dependen‬ ‭de‬ ‭bibliotecas‬ ‭externas.‬ ‭El‬ ‭valor‬ ‭de‬ ‭CLASSPATH‬ ‭puede‬ ‭incluir‬ ‭directorios,‬ ‭archivos‬ ‭.jar‬ ‭o‬ ‭ambos,‬‭separados‬‭por‬‭un‬‭delimitador‬‭específico‬‭según‬‭el‬‭sistema‬‭operativo‬ ‭como se ha tratado anteriormente.‬ ‭9.‬‭¿Cómo‬ ‭se‬ ‭podría‬ ‭cambiar‬ ‭la‬ ‭JDK‬ ‭que‬ ‭utiliza‬ ‭un‬ ‭proyecto en VSCode?‬ ‭ ás información:‬ M ‭https://code.visualstudio.com/docs/java/java-project#_configure-runtime-for-projects‬ ‭5‬

Use Quizgecko on...
Browser
Browser