Picapiedras con Java

Primero aclararé el punto referente a esta práctica de sistemas operativos, no se trata de enseñar Java desde el shell, es simplemente la importancia de que los profesionales en informática sepan usar una consola, terminal, shell, símbolo de sistema o como quiera que se le llame.

Aún cuando vivimos tiempos de escritorios con Windows 10 y web-html5-css3-aspx-jsp-ruby-grails-phyton-php-javascript-nodejs-Angular-jquery-php-json, etc, etc, ect, los procesos (demonios) cercanos al núcleo siguen ejecutándose en segundo plano mientras nosotros como sencillos humanos vemos una hermosa GUI de última generación que utilizamos para realizar nuestras labores o bien como medio de entretenimiento.

No siempre pasa que nuestro hermoso código no funciona por razones de profunda complejidad o enorme desconocimiento del lenguaje, falla porque tu cerebro hizo corto debido al choque de dos neuronas moribundas y cambiaste el nombre de un identificador (una variable, un método, un paquete -como fue el caso-, etc) e intentas que funcione invocándolo o referenciándolo como si tu compilador o interprete  tuviera tecnología de “lenguaje natural” y entendiera sinónimos o lo que le quisiste decir,  en pocas palabras tu código falla por una tontería (en mi rol de profesor no debo de escribir improperios).

Para acabarla vas con tu sensei, un erudito en ese lenguaje de programación y sales con tu “batea de babas” (eso no es un improperio) y él amable pierde unos minutos  de su tiempo y no se mofa de ti como lo mereces.

Pero pasando a este post cavernario y que probablemente no será de mucha utilidad solo para mis alumnos actuales de sistemas operativos que es su Practica 1 de la unidad 3, para todos los demás lectores mera curiosidad y cierta nostalgia del pasado. Entonces pues, pasamos a la cuestión de la linea de comando.

Sería bien que pasa con el PowerShell pero ahora utilizaremos el antiquísimo “Símbolo del sistemas” (cmd), con alguna versión de Windows – se hizo con un Windows XP y funcionó.

Vamos a bajar la última versión del JDK de Java e instalamos con el clásico “siguiente – siguiente – siguiente”.

Primera cuestión, vamos a modificar la variable de entorno PATH, para hacer accesible los ejecutables de Java como lo son javac y jar. Hemos comentado en la clase que imaginemos que no hay entorno gráfico y solo sabemos que necesitamos un programado llamado javac para crear los archivos .class en base a su código fuente .java. Tecleamos nuestro dir javac.exe /s desde el directorio raíz.

Con eso tenemos la ruta que agregaremos utilizando el comando set ( set path=%path%;c:\Program Files\Java\jdk1.7.0_67\bin ). 

Al dar la nueva ruta junto con %PATH% es una especie de concatenación a la variable PATH, y luego al dar PATH y [enter] podemos ver su contenido. Vamos a construir el árbol de directorios de la siguiente manera…

Java es un lenguaje de programación increíble para entender y aplicar la programación orientada a objetos, haremos el clásico volado que regresa Águila o Sol (o sello), pensando en el futuro nuestras clases que hagan programas de juegos, los depositaremos en un paquete llamado utags.cuartoc.juegos (favor de no “sentirse” los del “D” ya que empecé la práctica con el “C”, por eso es el nombre), Java organiza en carpetas por eso hicimos una ruta de esa manera utags\cuartoc\juegos, ahí estará la clase que hará el trabajo, y en la carpeta javabasico crearemos una clase TestVolado que es la probará nuestra clase Volado.

Vamos al bloc de notas o bien a algún editor con “esteroides” como NotePad++, en la carpeta utags/cuartoc/juegos depositaremos el archivo Volado.java, aquí el código:

Y en la carpeta javabasico, la clase que prueba dicho código, TestVolado.java.

De tal forma que tenemos los archivos de la siguiente forma:

 

Ahora tenemos que compilar para probar el código:

Aquí es donde por mi pequeñín error me tarde un buen en resolver que pasaba con la generación de los archivos *.class, y era porque en lugar de poner cuartoc puse grupoc :). La opción -cp es para indicar donde están las clases y que archivos se compilarán en este caso en el directorio actual (.).

Pero vamos, ahora para distribuir aplicaciones java se usa el comando jar, que en si es como un zip que almacena las clases participantes para resolver determinado problema.

Creamos el jar y una vez creado damos el comando java, opción cp el archivo jar y la clase que tiene el main ( java -cp lanzador.jar TestVolado ).

Y ahora vamos a ponernos sombrero y crear el archivo manifiesto para que al ejecutar el archivo jar no haya necesidad de indicar la clase con el main. En un archivo de texto vamos a crear un archivo de una sola línea y dar un [enter] !Bien importante porque sino no funciona! es decir un renglón abajo de la indicación del manifiesto.

Main-Class: TestVolado

 

Volvemos a generar el jar, pero ahora con la opción cmf, el archivo de manifiesto y los fuentes (.class) – jar cmf manifiesto.txt lanzador.jar TestVolado.class utags\cuartoc\juegos\Volado.class, como pueden observar en la pantalla generamos el manifiesto no con el bloc de notas sino con copy con. Simplemente para ejecutar hacemos java -jar lanzador.java.

Y bueno hasta aquí este post cavernícola, para finalizar un agradecimiento a mi sensei de java el Maestro Alejandro Jímenez García quien colaboró de manera indirecta con este post.

Saludos.

Profesor Miguel Araujo

Webgrafía.

Chuwiki

http://chuwiki.chuidiang.org/index.php?title=Compilar_java_desde_l%C3%ADnea_de_comandos

Jugando con Java

http://jugandoconjava.co/tutoriales/Applets/jarApplet/jarApplet.html

 

 

 

Deja un comentario