• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Eclipse y java, me estoy haciendo un lío.

Saito_25

Friki informático
Registrado
15 Mar 2015
Mensajes
1.154
Puntos
83
Supongo que mis dudas serán un estupidez, pero antes se seguir me gustaría resolverlas; estoy cursando 1 de DAM y si me pierdo en lo básico, mal vamos... Muchas gracias por la ayuda.

¿La primera pregunta que tengo es sobre qué es jre y djk? Entiendo así por encima que jre sirve para poder utilizar los programas de java y que jdk sirve para crearlo, ¿pero cómo te ayuda a crearlos, es decir, realmente qué aporta o qué es jdk? ¿Y en qué se diferencia?

Por otro lado, a principio de curso tuvimos un problema con el jdk 12, que os expongo a continuación y se me plantea la duda de por qué:

Instalamos esta versión de eclipse: Eclipse IDE for Java Developers | Eclipse Packages

Luego, instalamor el jre 8 y funcionaba bien; pero la profesora nos pedía que tuvieramos instalado el jdk12 (y su respectivo jre 12). La cuestión es que cuando instalábamos el jdk12 sin tener instalado el jre 8 no podíamos abrir eclipse. Lo solucionamos instalando el jre 8 y el jdk 12 y luego a la hora de crear un proyecto de java, teníamos que agregar el jre12 porque el programa no lo reconocía; lo hicimos desde configure jre... , installed jre , add. Y ya ahí buscábamos la carpeta del jdk 12 y nos funcionaba; así que mi pregunta fue ¿por qué?

¿No debería de haber funcionado sin problemas, ya que el jdk 12 incluye el jre 12?

Por otro lado, ¿Qué me aporta eclipse? ¿Y por qué hay tantas versiones de él? Es decir, estoy seguro de que en visual studio code podría hacer lo mismo y probablemente sería hasta más fácil para mí, ya que estoy acostumbrado a él; pero obligatoriamente tenemos que dar eclipse... ¿Otra cosa es por qué exactamente esa versión? ¿Tiene algo que ver con el jdk?

Perdonar el tostón y gracias ;).
 
¿La primera pregunta que tengo es sobre qué es jre y djk?

JRE = Java Runtime Environment. La máquina virtual que ejecuta los programas.
JDK = Java Development Kit. Incluye las librerías que se necesitan para crear programas.

La diferencia la puedes entender de este modo: para fabricar un coche aparte de un volante necesitas un martillo y tornillos. Para conducirlo sólo te hace falta el volante. Y ya lo incluye el coche. El JDK son volante, martillo y tornillos. El JRE es el volante -y está pegado al coche-.

¿pero cómo te ayuda a crearlos, es decir, realmente qué aporta o qué es jdk?

No te ayuda a crearlos. Te permite crearlos. Incluye el código que es necesario para pasar de código en texto plano a binario ejecutable por el JRE.

Luego, instalamor el jre 8 y funcionaba bien; pero la profesora nos pedía que tuvieramos instalado el jdk12 (y su respectivo jre 12). La cuestión es que cuando instalábamos el jdk12 sin tener instalado el jre 8 no podíamos abrir eclipse. Lo solucionamos instalando el jre 8 y el jdk 12 y luego a la hora de crear un proyecto de java, teníamos que agregar el jre12 porque el programa no lo reconocía; lo hicimos desde configure jre... , installed jre , add. Y ya ahí buscábamos la carpeta del jdk 12 y nos funcionaba; así que mi pregunta fue ¿por qué? ¿No debería de haber funcionado sin problemas, ya que el jdk 12 incluye el jre 12?

Es un problema de dónde se instala el binario. Para que puedas ejecutar el comando java en consola, necesitas que el binario java sea añadido a la ruta del sistema. Probablemente vuestro instalador del 12 no hace eso, mientras que el del 8 sí. Por tanto, un programa puede encontrar java (el binario) si se instala con el 8 pero no con el 12.

Indicándole al entorno de desarrollo dónde está exactamente el java (el binario) estás evitando la necesidad de tenerlo en la ruta del sistema: si ya le dices dónde está, no tiene que depender de que esté en la ruta del sistema o no.

Por otro lado, ¿Qué me aporta eclipse?

Es un entorno de desarrollo. Prueba a escribir Java en el Notepad de Windows para notar la diferencia. Eclipse, y en realidad cualquier IDE de Java como NetBeans o IntelliJ, (Visual Studio Code no es un IDE, es un editor de texto vitaminado) (esto no es necesariamente malo) te proporcionan muchísima ayuda a la hora de desarrollar:


  • Autocompletado del lenguaje. Escribe System.out. y verás cómo Eclipse te indica un menú emergente con cosas como println(). También te ayuda con los parámetros que acepta el método que estás escribiendo de modo que no tienes que memorizarlo.
  • Validación en tiempo real, llamado linting o simplemente compilación. Indica los errores que encuentra en el código que escribes mientras lo escribes.
  • Integra funcionalidades como control de versiones (Git, Hg, SVN...), gestión de tareas (MyLyn, tareas locales, etc), conexiones con la base de datos, comparación entre versiones del mismo fichero...
  • Te permite depurar el programa, pausar la ejecución y examinar el contenido de variables en ese momento puntual.
  • Y mucho más.

¿Y por qué hay tantas versiones de él?

Porque está en desarrollo constante y continuamente mejorando. Si te refieres a lo de CDT, PDT... Es porque Eclipse es modular y existen módulos que lo hacen compatible con multitud de lenguajes. Los desarrolladores crean paquetes que sólo son compatibles con Java, otros que son compatibles con PHP (Eclipse PDT), otros que son compatibles con C/C++ (Eclipse CDT)...

La diferencia es qué paquetes tiene preinstalados el IDE, aunque luego puedas manualmente instalar más.

Es decir, estoy seguro de que en visual studio code podría hacer lo mismo

Probablemente pudieras, sí. Hay muchas extensiones de Visual Studio Code, algunas para Java.

y probablemente sería hasta más fácil para mí, ya que estoy acostumbrado a él

Quizá sí, pero en tu vida profesional utilizarás diversidad de lenguajes, entornos, herramientas y demás. Si no lo haces, serás un mal profesional.

pero obligatoriamente tenemos que dar eclipse... ¿Otra cosa es por qué exactamente esa versión? ¿Tiene algo que ver con el jdk?

Pregúntale a tu profesora por qué ha elegido esas versiones. Yo puedo responderte por qué utilizaría esas versiones, pero tu profesora tendrá sus motivos.
 
La diferencia del JRE y el JDK, es que en el segundo vienen librerias para compilar los programas (ya se que en Java no se compila estrictamente pero el funcionamiento es similar), ademas del compilador, generador de documentacion sin el jdk no podrias ni crear un hola mundo y mucho menos si usas librerias para mejorar tus programas que lo hacemos sin darnos cuenta en java hay algunas muy populares que se usan como un estandar para programas sencillitos. El JRE incluye lo minimo posible solo para ejecutar programas ya compilados.

No tengo ni idea xq te pasa ese error pero tiene pinta que es culpa de la version de Eclipse o la version de java o de ambas, probablemente sea mas de eclipse por mantener la compatibilidad pero es raro xq es una version moderna de Eclipse. SI que deberia haber funcionado sin problemas.

Esta muy bien que aprendas en eclipse xq es un entorno muy potente que se usa para muchos lenguajes diferentes y es muy potente al venir con muchas herramientas y plugins, una vez que seas un experto con el podras elegir en un futuro con cual quieres trabajar o si te obligan a trabajar con uno de ellos no tendras problemas. Eclipse tiene varios paquetes por varias razones, primero uno esta orientado al lenguaje y a los usos que vas a dar a ese lenguaje, luego cada pocos meses sacan una version nueva y dentro de cada version nueva hay varias versiones de pruebas. La que te han hecho descargar es la version Java normal, version de septiembre que es la mas nueva y la version estable que se denomina "R" de release.
 
¡'Muchas gracias a ambos!

Me queda todo un poco más claro, a seguir dándole caña a java!
 
Voy a añadir a las excelentes respuestas de los compañeros otra apreciación que quizá sea importante: el porqué de un JRE, o expresado de otra forma, una máquina virtual de JAVA.

Intentaré ser lo más breve posible. Java no compila el código a texto binario directamente ejecutable por el Sistema Operativo, genera lo que se conoce como un código objeto, el cual es ejecutado por el JRE. Por qué usar el JRE como intermediario entre el código y SO?. Sencillo, para que el lenguaje sea multiplataforma. Es decir, que un programa escrito en Java funcione tanto en Windows, Unix, Solaris o cualquier otro sistema operativo. Es el JRE quien se encarga de conocer que sistema operativo es el subyacente y ejecutar el código compilado por el jdk en función de ello.

Espero que con las respuestas recibidas te haya quedado un poco más claro. Y una advertencia... Java es un universo. Antes de meterte a saco con él asegúrate de que conoces el paradigma orientado a objetos a la perfección: Herencia, Polimorfismo etc.

Saludos y ánimo.
 
Lo del problema con la versión 12 es normal, creo que es un tema de licencias, a partir del 9 java tomo un rumbo muy distinto con el tema licencias. Sobre que os haga trabajar con cierta versión es normal, ya que aunque java es compatible con versiones antiguas de código sin problemas, las nuevas versiones incorporan nuevas características, por ejemplo la 8 implemento las lambda funciones( supongo que ya las darás mas adelante), y en alguna de la 9,10,11,12 metieron el uso de la palabra reservada var que infiere el tipo cuando compilas igual que hace c# con esa palabra. no se en que versión en concreto lo metieron porque lo lei en una noticia y hace eones que no uso java. Asi que igual vais a usar una característica novedosa y por eso necesitáis java 12.
 
Arriba