1 00:00:00,880 --> 00:00:04,559 En este vídeo vamos a ver cómo crear ficheros .jar en Java. 2 00:00:05,620 --> 00:00:12,980 Un fichero .jar es un archivo comprimido en el que se empaquetan uno o más archivos .class, 3 00:00:13,179 --> 00:00:17,179 es decir, uno o más archivos compilados de clases Java, 4 00:00:17,679 --> 00:00:21,079 y los recursos necesarios para que nuestra aplicación funcione, 5 00:00:21,239 --> 00:00:25,719 como pueden ser imágenes, archivos de configuración o las bibliotecas necesarias. 6 00:00:27,000 --> 00:00:30,280 Se utiliza para distribuir aplicaciones o bibliotecas Java. 7 00:00:30,879 --> 00:00:41,840 Si el .jar tiene un manifiesto correcto, es decir, un fichero manifest.mf en el que se indica cuál es la clase principal de nuestra aplicación, 8 00:00:42,579 --> 00:00:45,179 se puede ejecutar con el comando java-jar. 9 00:00:47,670 --> 00:00:52,369 Desde la línea de comandos de Windows o de Linux se pueden crear ficheros .jar, 10 00:00:52,369 --> 00:00:59,810 pero en este vídeo lo que vamos a hacer es crearlos desde el entorno de desarrollo integrado, en este caso NetBeans con Maven. 11 00:00:59,810 --> 00:01:06,569 Nos vamos a NetBeans y aquí tenemos nuestros proyectos creados con Maven. 12 00:01:07,629 --> 00:01:14,689 En concreto vamos a trabajar con el proyecto este, Formulario 2, que lo que hace es mostrar un formulario por pantalla. 13 00:01:15,609 --> 00:01:22,989 Si lo ejecutamos, vemos que aparece un formulario donde me pide un texto. 14 00:01:22,989 --> 00:01:33,049 Bueno, cualquier cosita, prueba, lo doy a aceptar, me dice el texto que he medido y si lo doy a cancelar me limpia este cuadro de texto. 15 00:01:33,329 --> 00:01:34,989 Vamos a hacer un ejecutable con esto. 16 00:01:37,620 --> 00:01:48,780 Para crear un ejecutable, para crear un .harp, me pongo en el nombre del proyecto, pulso el botón derecho y podría hacerlo con cualquiera de estas tres opciones. 17 00:01:49,900 --> 00:01:53,659 Con build, plan and build y build with dependencies. 18 00:01:53,659 --> 00:01:57,239 como no lo he hecho en ningún momento 19 00:01:57,239 --> 00:01:58,640 podría hacerlo con el primero 20 00:01:58,640 --> 00:02:02,099 si hubiese modificado cosas y quisiera 21 00:02:02,099 --> 00:02:04,840 reestructurarlas desde el principio le podría decir 22 00:02:04,840 --> 00:02:06,959 que lo limpie y que lo construya 23 00:02:06,959 --> 00:02:11,939 y si mi aplicación tuviera dependencias 24 00:02:11,939 --> 00:02:15,080 de otras clases y aquellas otras clases hubieran 25 00:02:15,080 --> 00:02:17,620 modificado podría decirle que lo construya 26 00:02:17,620 --> 00:02:21,120 teniendo en cuenta, recompilando todas las dependencias 27 00:02:21,120 --> 00:02:32,210 Bueno, lo vamos a hacer con la primera opción y vemos que ya ha terminado la creación de nuestro fichero jar. 28 00:02:32,930 --> 00:02:37,750 Está construyendo el punto jar y este es el sitio donde lo ha puesto. 29 00:02:38,710 --> 00:02:48,550 Si nosotros vamos a ficheros, vemos que efectivamente nos ha creado en el sitio que nos estaba diciendo aquí el punto jar 30 00:02:48,550 --> 00:02:53,189 y que dentro de él está el meta int con el manifiesto. 31 00:02:54,030 --> 00:03:05,210 Si nosotros visualizamos el manifiesto, decíamos que un manifiesto válido es aquel que tiene el nombre de la clase principal de nuestra aplicación. 32 00:03:05,210 --> 00:03:13,770 Y sin embargo aquí no está la clase principal. Esto lo arreglamos de la siguiente forma. 33 00:03:14,409 --> 00:03:17,710 Lo primero que vamos a ver es cuál es nuestra clase principal. 34 00:03:17,710 --> 00:03:28,629 Bueno, pues con botón derecho del ratón en el nombre del formulario y Properties, en la opción Room, vemos que el nombre de mi clase principal es esta. 35 00:03:30,210 --> 00:03:43,330 Bien, pues esta clase, cuando estamos trabajando con Maven, se lo tenemos que especificar también en el fichero de configuración de Maven, 36 00:03:43,330 --> 00:03:53,669 que se llama POMXML, para que Maben nos construya un manifiesto válido donde se indique la clase principal. 37 00:03:55,810 --> 00:04:02,490 Entonces, ¿cómo se hace esto? Pues nos vamos al POMXML que hemos dicho que es el fichero de configuración 38 00:04:02,490 --> 00:04:15,300 y después vemos que es un fichero XML donde tiene sus etiquetas que abre y que cierran. 39 00:04:15,300 --> 00:04:32,689 Después de la última etiqueta y antes de que se cierre el proyecto, deberíamos indicarle a Maven que es cómo tiene que construir el fichero de manifiesto para indicar la clase principal. 40 00:04:32,689 --> 00:04:47,670 Y le ponemos esta estructura, Build, que abre y que cierra, y aquí Maven lo que utiliza es el plugin este para realizar la construcción de nuestro fichero JAR. 41 00:04:48,149 --> 00:04:53,810 Y aquí donde pone clase principal deberíamos poner el nombre de nuestra clase principal. 42 00:04:54,750 --> 00:05:10,569 Hemos visto que si vamos a formulario 2 y vamos a properties, en room, veis que tenemos aquí, en room tenemos nuestra clase principal. 43 00:05:11,290 --> 00:05:18,009 Pues donde pone aquí poner aquí la clase es donde tenemos que sustituirlo con el nombre de nuestra clase principal. 44 00:05:19,589 --> 00:05:24,230 Guardamos y volvemos a construir nuestro proyecto. 45 00:05:28,079 --> 00:05:31,759 Como ya lo hemos hecho, podemos decir que lo limpie y que vuelva a construir. 46 00:05:36,509 --> 00:05:40,350 Ha terminado la construcción y si ahora nosotros nos vamos a Ficheros, 47 00:05:41,810 --> 00:05:49,089 vemos que dentro de nuestro jar, nuestro manifiesto ya está correcto y ha cogido el nombre de la clase. 48 00:05:51,600 --> 00:05:54,819 Pues vamos a probar a ejecutarlo desde fuera. 49 00:05:57,240 --> 00:06:13,379 Cogemos nuestro fichero hard que está aquí y para poner toda la ruta, copiamos la ruta, nos vamos a la línea de comandos 50 00:06:13,379 --> 00:06:30,759 y hemos dicho que se ejecuta con el comando java-hard y aquí vemos cómo tenemos nuestro formulario. 51 00:06:31,360 --> 00:06:40,740 Bueno, pues hasta aquí la construcción de un fichero .hard cuando lo que queremos es hacer un ejecutable de él 52 00:06:40,740 --> 00:06:44,699 porque nuestro fichero tiene un punto main desde el que puede ejecutarse.