¿Que es JAVA?
Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.
Mas info: [url=http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)]Java wiki[/url]
JRE ("Java Runtime Environment")
Como su nombre lo indica este ambiente ("KIT") es utilizado solo para ejecutar ("Runtime") programas en Java. Esta situación se da cuando empresas de Software diseñan alguna interfase gráfica o aplicación en Java para su producto. Cabe mencionar que muchos productos que utilizan Java para su interfase gráfica o instalación ya incluyen un JRE para evitarle la molestia de instalarlo, uno de estos es Oracle ; sin embargo, muchos productos requieren que usted posea este ambiente, si se pregunta: Porque me hacen que obtenga forzosamente este JRE ? Una de las principales razones es costo ya que las empresas deben pagar a Sun por distribuir este ambiente en su producto.
Mas info: [url=http://es.wikipedia.org/wiki/Java_Runtime_Environment]JRE wiki[/url]
JVM ("Java Virtual Machine")
Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java.
Mas info: [url=http://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Java]JVM wiki[/url]
JDK,SDK,J2SE ¿Y esto?
"Java Development Kit"(JDK),"Standard Development Kit" (SDK) y "Java 2 Standard Edition" (J2SE) son nombres para el mismo componente e incluyen: El API de Java, el JRE ( JVM ), compilador de Java y otras funcionalidades definidas por Sun. Si no esta familiarizado programando en Java, el API de Java es un conjunto de clases que es utilizado para generar programas básicos en el lenguaje; utilizando una analogía, estas clases tienen la misma funcionalidad que las funciones|clases estándar utilizadas en otros lenguajes C,C++, Perl (Esto es precisamente la definición de API ("Application Programming Interface")).
Partiendo de estas clases (API de Java) se generan TODOS los programas,interfaces y elementos programados en Java, inclusive a partir de estas clases usted puede definir otras clases especificas que serán utilizadas por su programa o producto. Una vez que defina sus programas|clases en Java aún es necesario compilarlas para producir lo que es denominado byte-code o class files (este byte-code puede ser comparado con un binario) , y es este byte-code el que interpreta el JRE("Java Runtime Environment").Este byte-code es el que directamente ofrece la interoperabilidad de Java o el afamado "Write once run everywhere"="Escribalo una vez ejecutelo en todos lados".
Es una cantidad razonable de trabajo la que realiza el JDK|SDK, y por el hecho de incluir tanto el compilador,API Java y el JRE existen diversas implementaciones de JDK: JDK's de Sun (o J2SE) y JDK's de IBM.
Java 2 Platform, Standard Edition (J2SE)
Nos proporciona un entorno de escritorio Core Java y desarrollo de aplicaciones Java, y es la base de Java 2 Platform, Enterprise Edition (J2EE) y tecnologías Java Web Services . Tiene el compilador, herramientas, módulos de ejecución, y la API de Java que le permiten escribir, probar, implementar y ejecutar applets y aplicaciones.
Mas info: [url=http://es.wikipedia.org/wiki/Java_SE]J2SE wiki[/url]
Java 2 Platform, Enterprise Edition (J2EE):
Define el estándar para el desarrollo basado en componentes aplicaciones multitier enterprise. Se basa en J2SE y ofrece servicios adicionales, herramientas y APIs para apoyar a la simplicicacion del desarrollo de aplicaciones empresariales(Aqui pondemos tener a los Jsp, Beans, Servlets, Jsf, Ejbeans, entre otros.Digamos que esto es para aplicaciones desde el servidor).
Mas info: [url=http://es.wikipedia.org/wiki/Java_EE]J2EE wiki[/url]
Java 2 Platform, Micro Edition (J2ME):
Es un conjunto de tecnologías y especificaciones dirigidas a los consumidores y dispositivos embebidos, como teléfonos móviles, asistentes personales digitales (PDA), impresoras, TV y set-top boxes(que segun supe, esta tecnologia ya no se va a utilizar).
Mas info: [url=http://es.wikipedia.org/wiki/Java_Micro_Edition]J2ME wiki[/url]
La tecnología Java Card:
Java card se adapta la plataforma Java para permitir que las tarjetas inteligentes y otros dispositivos inteligentes con capacidad de memoria limitada y la capacidad de procesamiento para e beneficiarse de muchas de las ventajas de la tecnología Java.
Mas info: [url=http://es.wikipedia.org/wiki/Java_Card]Java Card Wiki[/url]
IDE's en java
Mientras un JDK|SDK ofrece las herramientas para compilar y ejecutar programas en Java éste no ofrece un ambiente de trabajo para proyectos complejos, esto es, si usted compila una o dos clases quizás el comando javac ofrecido en los JDK es suficiente, pero si su proyecto estará compuesto por 100 o 200 clases, javac sería muy deficiente.Los IDE's ("Integrated Development Environment") ofrecen un ambiente gráfico en los que se tiene acceso a mayor número de herramientas no ofrecidas en los JDK's: Debuggers más elaborados, check-points dentro de la compilación,creación de WAR's (Web-Archives), "Wizards" para acelerar desarrollo, entre otras cosas. Algunos IDE's son: (recomendados)
[url=http://www.eclipse.org/]- Eclipse[/url]
[url=http://www.netbeans.org/]- NetBeans[/url]
Mas info sobre lo que es un IDE(Entorno de desarrollo integrado: [url=http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado]IDE`S Wiki[/url]