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)

74 thoughts on “Ejecutar aplicaciones .jar en Ubuntu Linux

  1. aziru dijo:

    “(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…

  2. Angela dijo:

    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.

  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

  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 ;)

  5. Guillem dijo:

    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.

  6. Adolfo dijo:

    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!

  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

  8. nuevodasein dijo:

    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”

  9. sergio dijo:

    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…

    • quique dijo:

      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.

      • 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

  10. flux dijo:

    @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 :)

  11. matiuhart dijo:

    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!

    • 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

    • @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

  12. Ana dijo:

    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

  13. Ziccozzis dijo:

    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.

  14. Jose dijo:

    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

    • 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

      • Jose dijo:

        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

  15. Tomás dijo:

    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

  16. Angel Chapa dijo:

    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….

  17. koskado dijo:

    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

  18. Guilherme dijo:

    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

  19. Carlos dijo:

    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

  20. Álvaro dijo:

    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í ;-)

  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

  22. Bastian dijo:

    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

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s