" Java tiene una arquitectura neutra puesto que compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará. "
Iniciarse en el lenguaje java como primer lenguaje de programación es muy fácil en estos dorados tiempo, muchas paginas ofrecen manuales, tutoriales y mucha documentación la cual es de gran utilidad. Elegir un sistema operativo para desarrollar algún programa no es la excepción, su arquitectura neutral diseñado para que un programa escrito en este lenguaje sea ejecutado correctamente independientemente de la plataforma en la que se esté actuando (Macintosh, PC, UNIX…entre otros). Su filosofía totalmente multiplataforma es decir que es un lenguaje sencillo, por lo que el entorno necesario para su ejecución es de pequeño tamaño y puede adaptarse incluso al interior de un navegador , la cual es la clave del éxito de este lenguaje.
Lo que necesito para programar en java
Existen distintos programas comerciales que permiten desarrollar código Java. Lo primero que necesitas es descargarte el conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java. Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecución en el punto deseado y estudiando en cada momento el valor de cada una de las variables (con el denominado Debugger). A este conjunto se le denomina como Java Development Kit (JDK).
La plataforma Java de Sun Microsystems (adquirida por Oracle Corporation) es una excepción a la regla general de que el sistema operativo constituye la plataforma de software. El lenguaje Java provee una máquina virtual o "procesador virtual" que ejecuta cualquier código que haya sido escrito en dicho lenguaje; lo que permite que el mismo binario ejecutable se pueda usar en todos los sistemas compatibles con el software Java. Esto tiene, sin embargo, un precio: los ejecutables de Java no los puede procesar directamente el sistema operativo, sino que hace falta un programa especial, la Máquina virtual Java, que siendo ejecutada por el sistema operativo, se encargue a su vez de ejecutar esos programas.
Por ello, Java tiene limitaciones en cuanto a admitir funcionalidades propias de cada sistema. Los programas de Java pueden ejecutarse por lo menos en los sistemas Windows, GNU/Linux, y Solaris, con lo que dicho lenguaje está limitado a las funcionalidades que existan en los tres sistemas. Esto incluye, por ejemplo, redes y sockets, pero no entrada/salida directa del hardware.
¿Quien distribuye el JDK?
OpenJDK es una de las implementaciones libres de la especificación de la plataforma Java, que funciona bajo licencia GPL, lo cual la hace idónea para ser incorporada en plataformas que se distribuyen bajo este tipo de licencia, como GNU/Linux.
El problema que había era que los programas en Java no tienen restricciones de uso y distribución, pero la máquina virtual donde corre el código compilado de ese programa sí tiene restricciones y se distribuye bajo una licencia privativa, por lo que no es incorporado en plataformas GPL. La única opción legal de utilizar dicha implementación de Java es descargándola desde el sitio oficial de Oracle-Sun.
Bueno, durante bastante tiempo se ha trabajado en diversos proyectos con el fin de proveer una implementación libre para Java, por ejemplo, los proyectos Kaffe, Harmony o GCJ; esta última permite compilar el programa fuente Java en un ejecutable en ¡código nativo!. En 2006 SUN liberó la especificación Java (JSR), lo que ha permitido una incorporación de gran cantidad de programadores a este nuevo proyecto llamado OpenJDK que surgió de ello.
La implementación OpenJDK es diferente a la propietaria de Oracle y en algunos casos puede producir errores en los resultados obtenidos.