Ejecutar aplicaciones .jar en Ubuntu Linux


nullEstos días han sido dos personas en el instituto que, prácticamente en menos de una semana, me han consultado el mismo problema.

Tenían ficheros .jar (si consultas la web FilExt descubrirás que se tratan de paquetes del lenguaje de programación Java) y cada vez que hacían doble click sobre ellos se les abría el gestor de ficheros comprimidos (en su caso File Roller).

Como soy de los que prefieren no tener que explicar n-cientas veces el mismo tema (para poder dedicarme a cosas más productivas) he optado por crear este artículo al que poder «referenciar» a la próxima persona que me lo pregunte (y os puedeo asegurar que lo harán más pronto que tarde) 😉

Un poco de teoría

A los que estamos acostumbrados a ejecutar (y desarrollar) aplicaciones en Java, nos parece de lo más normal hacerlo desde la terminal lanzando un

java -jar mi-paquete-a-ejecutar.jar

Pero claro: no todos programan en Java 🙂

Vamos a la práctica

Para conseguir que un fichero .jar funcione en Ubuntu deben cumplirse dos requisitos

  1. Tener instalada la máquina virtual de java
  2. Definir el programa a utilizar para abrir los ficheros .jar

Instalar la máquina virtual de Java

Tan sencillo como buscarla en Synaptic.

Comentar que existen dos versiones

  1. El JRE o Java Runtime Enviroment que no es más que el conjunto de aplicaciones y librerías necesarias para poder usar una aplicación Java (prácticamente la máquina virtual y algunas herramientas más)
  2. El JDK o Java Development Kit que está formado por el JRE mencionado en el punto anterior y todo lo necesario para poder desarrollar aplicaciones en este lenguaje de programación.

Evidentemente para lo que necesitan mis compañero nada mejor que buscar el JRE en el gestor de paquetes e instalarlo

Definir el programa para abrir programas Java

Basta con hacer click con el botón derecho sobre un fichero .jar y seleccionar la opción que aparece en la imagen

En el formulario que nos aparece a continuación escribiremos

java -jar

tal y como puede observarse en la figura

NOTA: tras el -jar es aconsejable dejar un espacio en blanco para evitar problemas

Conclusión

Problema fácil de solucionar una vez que se sabe cómo hacerlo.

Aunque lo tengo documentado y pienso usarlo (ésto es una amenaza en todo regla) cuando alguien vuelva a preguntarme sobre el tema… ¿qué os jugáis que al final no lo leen y tengo que explicarlo una y otra vez?

Si ya decía un buen amigo que cada vez que le preguntaban algo tenía la «mala» costumbre de indicar la bibliografía adecuada a la consulta que le hacían. Un buen día alguien le saltó: «quillo Teo… ¡qué cada vez que te pregunto algo me sueltas un libro!»

Por desgracia la gente no quiere leer (ni aunque le haga falta), prefiere que le den las cosas «mascaditas» y no tener que molestarse mucho, ¿por eso tendrá tanto «éxito» el «ventanuco»? (y me estoy refiriendo tanto a la desidia del personal como a la poca inquietud por aprender, descubrir y aprender cosas nuevas)

93 comentarios en “Ejecutar aplicaciones .jar en Ubuntu Linux

  1. «(y me estoy refiriendo tanto a la desidia del personal como a la poca inquietud por aprender, descubrir y aprender cosas nuevas)»

    Esto es tristemente aplicable a todos los niveles, no solo a la informática…

    Me gusta

  2. Estoy segura que los que como comenzamos a usar Linux te lo agradecemos, pero yo, que tengo dos días de haberlo instalado en mi PC no se a que te refieres con «Synaptic» no se si es un directorio, una utilidad o una página en internet. Así que luego de leer el articulo me quedó muy claro que hay que tener la maquina virtual de java para correr paquetes .jar, pero sigo sin tener idea de como instalar la maquina virtual de java.

    Me gusta

  3. Pues Synaptic es el gestor de paquetes de Debian/Ubuntu y derivados de ellos. Es el programa con el que podrás instalar los paquetes aunque yo prefiero la terminal, es más rápido.
    Un saludo

    Me gusta

  4. Tienes razón @Ángela, llevo tanto tiempo hablando de Synpatic que olvidé comentar cómo instalarlo (lo coloque como requisito previo simple y llanamente).

    Puedes encontrarlo en Aplicaciones > Sistema > Gestor de paquetes Synaptic y en el botón buscar puedes colocar jre o jdk

    Espero te sea de utilidad, para cualquier duda ya sabes dónde encontrarnos.

    Gracias y perdona que haya supuesto más de la cuenta 😉

    Me gusta

  5. Para aprender algo hay que esforzarse un poco.

    Acaso ya no recordáis cuando no teníais ni idea de windows y no sabíais instalar un programa?

    Muchos de vosotros de bien seguro que os preocupasteis de leer alguna guía de windows. Pues bien, estoy convencido que si tuvieseis que empezar otra vez des de cero con un sistema como ubuntu que lo trae todo bien masticadito os costaría menos de la mitad sacar provecho a un ordenador.

    Además os recuerdo que en el caso de ubuntu en el menú aplicaciones hay una añadir/quitar programas desde dónde todavía es mas fácil instalar este tipo de software.

    Así que amigo jasvazquez no pidas disculpas porque hayas supuesto demasiado, el que quiera saber que es synaptic solo debe de escribirlo en google. A ver si resultará que has supuesto demasiado por pretender que la gente sabe como encender el ordenador o como ir hasta un menú con el ratón.

    Me gusta

    1. Siempre es bueno que las cosas se expliquen. Eso de «esforzarse» por «aprender» no es argumento. Miren, llevo usando Linux desde hace más de una década (y Windows desde la 3.0… llovió mucho, ¿verdad?) Estando el mundillo informático, especialmente el no estrictamente profesional tan absolutamente asentado sobre el SO de Microsoft, es un poco ingenuo decir que la gente «debería esforzarse» simplemente por aprender una plataforma nueva, cuando ya están acomodados en el sistema de las ventanas o, quizás, en la de la manzana y tienen en realidad de todo para su uso cotidiano (incluso ciertas aplicaciones que no existen en GNU/Linux). Si los usuarios del pingüino no explicamos bien explicadito todo lo que ponemos en el blog de turno, y no nos esforzamos por facilitar las cosas a los recién llegados no merecemos más cuota que la que tiene Linux: un triste 2%. Pensar que un usuario Windows/Apple «necesita» Linux es una bobada. Este sistema se basa en unos principios éticos, unas libertades que no voy a explicar, para ser breve y que imagino todos conocen. Estos principios de libertad son los que hacen grande y meritorio al sistema parido inicialmente por Stallman y Torvalds (cada uno en lo suyo) El resto es hablar por hablar. Un cordial saludo.

      Me gusta

      1. No se trata de convencer a nadie ni de dar explicaciones que nadie pidió amigo Ajax.
        En este blog se intercambian experiencias, trucos y consejos para quienes pueda llegar a ser útil bien porque tengan un problema similar o para los que no se habían planteado que algo fuese posible.
        Salu2 y gracias por tomarte la molestia de compartir tu opinión en este rincón de la web 😉

        Me gusta

  6. Alguien tiene idea como puedo crear un lanzador de una aplicación .jar en el menu. Para no tener que estar yendo cada vez que quiero ejecutar el programa a buscarlo en su respectiva carpeta, o estar ejecutando un lanzador del escritorio… odio tener iconos en el escritorio jajaja… Otra cosa, si quisiera lanzar un programa que usa modo gráfico del JavaRuntime, desde consola, como sería el comando. Probé con #java -jar elprograma.jar y me dice: Wrong Java Version! elprograma needs at least Java 1.5 or higher!

    PD: elprograma es JDownloader, les va a resultar útil a quienes bajan cosas de megaupload y rapidshare.

    Gracias … totales!

    Me gusta

  7. La instrucción que indicas para ejecutar es correcta aunque te recomiendo que indiques la ruta al fichero si quieres evitar tener que moverte a la carpeta en la que se encuentra el fichero .jar.

    Siguiendo tu ejemplo sería java -jar /ruta/al/fichero/elprograma.jar

    El error que comentas se debe a que tienes instalado Java pero en una versión antigua (actualiza mínimo a java 1.5 desde Synaptic)

    Suerte

    Me gusta

  8. Muy buena explicación
    otra forma de asociar el archivo es dándole click derecho>propiedades
    y en la pestaña «abrir con» seleccionar «Sun Java 6 Runtime»

    Me gusta

  9. Viendo la solución he vuelto a la consola y he escrito java y sale esto:
    sergio@sergio-desktop:~/Escritorio/JDownloader$ java
    Usage: java [-options] class [args…]
    (to execute a class)
    or java [-options] -jar jarfile [args…]
    (to execute a jar file)

    La respuesta estaba delante de mis narices y no la veia,…en fin….gracias de todas formas por el aporte…

    Me gusta

    1. Hola.
      Quiero instalar un programa (concretamente el MSC Adams). En el cd del programa aparecen entre otros ficheros uno llamado setup.jar. He copiado el cd a una carpeta en mi home y he intentado ejecutar el fichero llamado setup.jar, me sale el siguiente mensaje:

      Failed to load Main-Class manifest attribute from setup.jar

      He visto algunos comentarios en otros foros, pero no se como solucionarlo.

      Muchas gracias.
      Saludos.

      Me gusta

      1. Puede deberse a dos motivos básicamente:

        1. Que no tengas la versión adecuada de Java para ejecutar el programa (te recomendaría que actualizases a la última versión del JRE)
        2. Que el deployment de setup.jar no sea correcto y por eso te de el error que mencionas.

        Personalmente me decanto por el primer motivo… ya nos contarás.

        Un saludo

        Me gusta

  10. @Adolfo. Por si aún no lo has solucionado: como root escribes en la terminal «update-alternatives –config java» (sin las comillas) y seleccionas la opción que ponga «java-6-sun».

    Saludos 🙂

    Me gusta

  11. Hola estuve viendo un poco este tema de ejecutar .jar en linux.Como soy un poco fatiga y no tenia ganas de andar escribiendo en consola cada vez q quería ejecutar un .jar. Encontré la forma de ejecutar directamente con un click derecho sobre el archivo y elegir ejecutar con java y la quiero compartir con uds.
    La cuestión es asociar esa extensión al binario de java con la opción -jar. Esto sería así:
    Le damos click derecho propiedades al archivo a ejecutar, vamos a editar tipo de archivo y en el cuadro «Orden de preferencias de archivo» le damos añadir. Aquí vamos a buscar la ruta de java, que en mi caso está en /usr/bin/java, le damos aceptar y ahora editamos la asociación, nos vamos a la pestaña aplicación y en el
    cuadro de texto «Orden» le agregamos el modificador -jar (nos quedaría /usr/bin/java -jar). Listo! damos aceptar y nuestro archivo quedo asociado a java. Ahora cada vez que queramos ejecutar un .jar le vamos a dar click derecho e iremos a la opción ejecutar con java. Esto lo hice con Kubuntu 9.04 ya que no viene como en Kubuntu 8.04 que me lo asociaba automáticamente. Saludos! espero que les sea útil!

    Me gusta

    1. Gracias @Matiuhart por tu contribución.

      Si observas el artículo verás que lo que propones es exactamente lo mismo que aparece en el texto.

      La única excepción es que no he indicado que a partir de seguir los pasos indicados cada vez que hagas doble-click sobre cualquier .jar (no haría falta pulsar el botón derecho como indicas en el comentario) ejecutará directamente java -jar

      Suerte y gracias de nuevo

      Me gusta

    1. @Angel, prueba a lanzar un java -jar MIFICHERO.jar desde la terminal y nos cuentas cuál es el error que devuelve el sistema.

      A partir de ahí podríamos localizar/solucionar la causa del problema.

      Suerte

      Me gusta

  12. Hola mil gracias por exponer tus conocimientos, me estaba rompiendo el coco para instalar una aplicación, pero gracias a tu explicación lo he hecho de maravillas

    Me gusta

  13. Yo digo que soy una especie de «novato avanzado» en Ubuntu… y gracias a este artículo se para que sirve la opción de «Usar una orden personalizada:» (jamás la había utilizado). Muchas gracias.

    Me gusta

  14. Buenas, me he instalado JDK desde la web de Java.com en mi equipo con Ubuntu 9.04.

    Tengo instalado correctamente el JDK, definido en el PATH, ademas he configurado NetBeans que lo uso para programar, Firefox me reconoce Java, etc…

    Pero:
    Ya no tengo en «Aplicaciones/Internet»
    el icono de Java…

    y en «Sistema/Administracion» la opcion de Java policy tool.. o algo asi, ademas de que Nautilus, me abre los .jar con e descompresor, si busco la aplicacion de Java no aparece en el listado.

    Sabeis como puedo solucionar eso?

    Os dejo las salidas del terminal:

    $ java -version
    java version «1.6.0_20»
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
    Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

    $ javac -version
    javac 1.6.0_20

    $ ls /usr/lib/jvm/
    java-1.5.0-gcj-4.3-1.5.0.0 java-gcj jdk1.6.0_20 jre1.6.0_20

    Me gusta

    1. Hola @Jose

      vayamos «por partes» que dijo Jack el Destripador 😉

      1. Parece que tienes instalada la máquina virtual de Java de GNU pues tienes en /usr/lib/jvm las entradas java-1.5.0-gcj-4.3-1.5.0.0 y java-gcj; te recomiendo que no la utilices pues normalmente la gente tiene la oficial de Sun y no son 100% compatibles.
      2. ¿has instalado la jdk utilizando Synaptic o por el contrario has utilizado el binario que proporciona Sun en su página web? (eso podría explicar que no aparezcan los iconos en el menú)
      3. Asegúrate que estás utilizando la versión correcta de Java utilizando el comando update-alternatives (más información en el enlace)

      Suerte y un saludo

      Me gusta

      1. Buenas, he instalado el JDK desde el binario de la web de Java.com, tanto en firefox, netbeans, etc.. Me sale que utilizo la 1.6.0_20, pero además de no aparecer los iconos comentados, desde nautilus no me deja abrir los .jar y si lo busco en la lista de ‘abrir con’ tampoco me aparece.

        Un saludo y muchas gracias por responder

        Me gusta

  15. Muchísimas gracias, aunque yo no he localizado el jre en Synaptic, lo he tenido que descargar desde el Centro de software de Ubuntu buscando el paquete «default-jre», después de instalarlo, botón derecho sobre el archivo «.jar», abrir con otra aplicación…, usar comando personalizado «java -jar » y listo. He repetido todo el proceso por si hay algún novato como yo que no lo ha encontrado en Synaptic y se ha perdido…

    Gracias de nuevo.
    Un saludo

    Me gusta

  16. Hola, estoy tratando de ejecutar un archivo .jar y por mas que intento no puedo, eh seguido correctamente los pasos que aqui muestran pero aun y asi no puedo resolver el problema, creo que no hace falta mencionar que soy nuevo en el mundo ubuntero, al intentar correr el archivo dando el segundo clic me aparece esta leyenda:
    The file ‘/home/chapa/Escritorio/h/1100Words-V1.3.jar’ is not marked as executable. If this was downloaded or copied from an untrusted source, it may be dangerous to run. For more details, read about the executable bit.

    Si pudieran ayudarme ……………
    GRACIAS….

    Me gusta

    1. Hola @Angel parece que estás tratando de ejecutar directamente el fichero por lo que me inclino a pensar que no has configurado correctamente la gestión de los .jar.
      Prueba a seguir los pasos detenidamente pues no deberías tener problemas para abrirlos.
      Otro posible problema es que no tengas instalada la máquina virtual de Java.
      Si sigues teniendo problemas no dudes en contactar a través del soporte técnico del blog
      Suerte y un saludo

      Me gusta

  17. pos a mi lo ke me gustaria es crear un lanzador para la barra de tareas pero no doy kon la tekla en el komando del mio puse java -jar /home/koskado/Documentos/carpetadeljar/arcivo.jar ke desde konsola si funca pero si lo pongo en l komando de lanzador en modo aplicacion hace nada y en modo aplicacion en consola abre y cierrra una consola a una veloscidad tal ke kasi no da tiempo a verla ,¿alguien me podria hechar una mano con eso?
    muchas gracias de antemanno («,) kosky

    Me gusta

  18. Olá!
    Ya hice todo el proceso, pero ahora no se como iniciar el programa.
    Explico, me baje el ultramixer de la pagina oficial, segui todo este proceso para instalarlo, se instaló, pero ahora no se como hacer para abrirlo.
    Si alguien me ayada se lo agradeceria mucho

    Me gusta

  19. Buen día

    tengo una espina con respecto a este tema, es un poco mas de detalle pero posiblemente alguien que tenga experiencia en linux podría resolverla.

    ya tengo instalado el jre1.6.0_24 , funciona todo bien, desarrolle una aplicación que se ejecuta en entorno gráfico y tiene interacción con archivos .txt el punto es:

    me logeo como usuario root, por lo tanto tengo todos los permisos, pero si esa aplicación.jar la ejecuto desde un entorno grafico NO LEE ARCHIVOS TXT. Pero si la ejecuto desde terminal java -jar aplicacion.jar .. funciona correctamente, lee archivos de manera normal.

    ya vi la parte de los permisos tanto de la aplicación como para los archivos y todo esta en orden (read & write), no se que pueda ser.

    saludos, gracias

    Me gusta

  20. Wow, desde el 2009 hasta ahora respondiendo preguntas del mismo post, qué máquina Informático de Guardia. Son 3 años ya ehh!

    Me despido pero no antes sin agradecerte este aporte sencillo pero muy muy muy útil. Un saludo y felicidades por este blog

    Mucha suerte y sigue así 😉

    Me gusta

  21. Disculpa estoy intentando ejecutar una aplicacion echa en kubuntu con qt por otra persona pero al ejecutarla desde la consola me marca este error.
    ulises@ulises-UX32VD:/media/ulises/Datos/chatarrera2$ sudo java -jar chatarrera-2.0-SNAPSHOT.jar
    Exception in thread «main» java.lang.NoClassDefFoundError: com/trolltech/qt/gui/QApplication
    at com.chatarrera.views.main.Chatarrera.main(Chatarrera.java:30)
    Caused by: java.lang.ClassNotFoundException: com.trolltech.qt.gui.QApplication
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    … 1 more

    Me gusta

  22. Muchas gracias, me ha sido de mucha ayuda, habia intentado con «abrir con otra aplicacion» y no me mostraba la aplicacion de java, pero gracias al comando ya puedo abrir los .jar.
    Te entiendo por eso de que te pregunten una y otra vez, en mi grupo de amigos yo soy el que sabe mas de informatica, y el primero, y espero no el unico que se lanzo a linux xD

    Me gusta

    1. Gracias por comentarlo Max (si te soy sincero, estaba esperando que alguien lo hiciese 😉 ) pues el artículo se publicó con GNome 2 en mente y con el cambio en la interfaz de Ubuntu ya no es posible.
      Me has dado la «excusa» ideal para escribir ese artículo que hace tiempo debí publicar.
      Gracias

      Me gusta

  23. Me imagino que cuando estás apurado a vos también te gustaría que te digan rápido, si la respuesta es rápida. Donde queda tal calle? y en lugar de indicar le das un mapa. Es verdad lo que decís, pero solo la mitad. Si dedicas tiempo es por puro ego, lo cual no es malo. No eches en cara el hecho de ayudar, puede que alguna vez lo necesites también. Un saludo!

    Me gusta

  24. Jajajaja, bueno, yo sí he leído tu explicación y me viene al pelo pq ando aprendiendo java y soy fan de linux y todo el open source. Espero q te consuele : )

    Me gusta

  25. Hola, tengo un problema para ejecutar un programa hecho en java. en Ubuntu, y realizado tus procedimientos pero no se puede. Queria saber si me podrías ayudar. Gracias. =D

    Me gusta

  26. Buenas, tengo un problema y es que apesar de tener instalado java y obvimanete decirle que abra con java el archivor .jar, no ahce nada, es como sino le hubiera dicho abrir (tambien puse el .jar para que se pudiera ejecutar )

    Probe a desintalar, volver a instalar, a purgar,etc… no consigo que se lance.

    Alguna idea de que puede estar fallandome?

    Muchas gracias! y Buena aporte!!

    Me gusta

    1. Hola Edo, perdona que no haya podido contestar antes (está semana es de evaluaciones y ando algo más «distraído» de lo habitual 😅) ¿Qué versión de Ubuntu usas o en qué distribución de Linux lo estás intentando? ¿Cuál es tu entorno de escritorio? (para hacer unas pruebas y mejorar, si fuese posible el artículo)
      Gracias 👍🏻

      Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.