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)

26 comentarios hasta ahora

  1. aziru on

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

    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. chipi on

    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. jasvazquez on

    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 on

    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. Rocío on

    Muchas Gracias!

  7. Adolfo on

    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!

  8. jasvazquez on

    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

  9. Adolfo on

    Creo que tengo todos los paquetes bien… acá mando una imagen, mostrando el error que me da en consola, y los paquetes que tengo en el Sypnatic.

    Link: http://img6.imageshack.us/my.php?image=javacv5.jpg

    • jasvazquez on

      Todo parece ser (aparentenmente) correcto.

      Comprueba que la versión de java es correcta ejecutando un

      java -version

      desde la terminal.

  10. nuevodasein on

    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”

    • jasvazquez on

      Gracias por el aporte (usando XFCE como entorno de ventanas no me atrevía a “improvisarlo” ;) )

  11. sergio on

    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 on

      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.

      • jasvazquez on

        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

  12. flux on

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

  13. matiuhart on

    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!

    • jasvazquez on

      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

  14. angel on

    excelente …. el problema es que aun asi … no me corre jejeje ,….. me tocara seguir buscando . buen aporte -

    • jasvazquez on

      @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

  15. Eddy blens on

    gracias por esta pagina he resuelto, la instalacion del outlookmessenger para ubuntu.nos vemos

  16. Ana on

    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

    • jasvazquez on

      Genial! Me alegra que haya servido para resolver el problema.

  17. pichudo on

    pura vida bicho….. Viva Costa Rica y Ubuntu, Windows es un mier….

  18. Ziccozzis on

    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.

    • jasvazquez on

      Siempre hay una vez @Ziccozzis ;)
      Me ha gustado la definición de “novato avanzado” jeje


Replica