Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Sixtoex en 10 de Noviembre 2014, 20:28
-
Java es multiplataforma, es decir se programa una unica vez, eclipse lo COMPILA automaticamente genera un ByteCode.class(que por cierto es mitad codigo fuente y mitad codigo máquina) y con el interprete JRE, lo convierte a codigo máquina en tiempo real y así es posible ejecutarlo en cualquier sistema operativo con la extensión adecuada no?
Hasta aquí todo bien, la duda que me surge es: Las rutas de ubuntu son diferentes a las de windows y mac... osea imagina que estamos programando un programa que lee las carpetas de linux,y especificamos rutas, en windows son diferentes ¿entonces que sentido tiene esto?
Es decir en otros lenguajes de programación como es Pascal, se programa en cada sistema operativo,es decir si queremos un programa en windows, pues en windows lo hacemos si lo queremos en ubuntu pues en ubuntu(esto lo veo mas lógico) por que cada sistema operativo tiene diferentes rutas
-
Hola Sintoex!
A priori yo creo que tiene mucho sentido y grandes ventajas.
Como dices, las rutas no son iguales en un sistema operativo y en otro. Tampoco lo serían las entradas de usuario, por ejemplo del teclado de Windows al de Mac. Y puede que incluso unas bibliotecas esten denominadas de distinta forma en uno u otro sistema, pero muchas al final hacen lo mismo, solo varia el nombre.
La gran ventaja que observo yo, es que el grueso de la aplicación no varia en absoluto de una plataforma a otra. No tienes que reescribir la aplicación completamente desde cero para adaptarla de un sistema operativo a otro. Simplemente con cambiar las rutas de los archivos, modificar los inputs (algo más acuciante si pasas de un sistema de "sobremesa" a uno móvil, por ejemplo), modificar la sintaxis de las llamadas a algunas bibliotecas, y algunas cosillas más y voila! tienes exactamente la misma aplicación, exportada a distintos sistemas operativos.
Es mi humilde opinión, pero a mi parecer es un gran avance el no tener que reescribir toda la aplicación de nuevo.
Un saludo!
-
mmm, muchas gracias
Es decir el propio java, te ayuda por así decirlo,para que no te sea complicado adaptar esa misma aplicación unica en varios sistemas operativos de forma sencilla, mientras que en lenguajes de programación como Pascal por ejemplo tienes que adaptar desde 0 una aplicación en los distintos lenguajes
Interesante.
Gracias.
-
Una pregunta el byteCode que tiene de extensión .class, eso se puede convertir en la extensión que yo quiera no? es decir no tiene ningun sentido hacer un programa para windows y pasarle a alguien el .class, tendría que convertirlo no?
-
Hola Sistoex, el .class es bytecode, por tanto no tienes que hacer ningún cambio para pasarlo de sistema operativo. El compilador genera bytecode, ese bytecode te lo puedes llevar a Windows, a Linux, a Unix o a donde tú quieras, y es la máquina virtual Java quien se encargará de convertir ese bytecode en el código máquina propio de la máquina. En Java en lugar de tener muchos ejecutables distintos lo que tienes son muchas máquinas virtuales distintas. Saludos!!!
-
???
Hola, pero como ejecuto ese .class en windows por ejemplo ¿con el cmd? yo lo que quiero es que cuando termine de programar el programa, pueda ejecutarlo sin necesidad de utilizar un IDE.
-
Hola, para esto puedes crear un ejecutable java (.jar) que será ejecutado por la máquina virtual java sobre el sistema operativo que toque: windows, linux, etc. Con el ejecutable ya no necesitas un ide, por ejemplo podrías enviarle el .jar a un amigo por correo electrónico para que lo ejecute en otro ordenador ::)
-
ok muchas gracias ;)