Problema al ejecutar el archivo jar en ubuntu

Problema al ejecutar el archivo jar en ubuntu

¿Por qué se ejecuta un .jarscript cuando lo ejecuto como java -jar myfile.jar, pero no se ejecuta cuando lo ejecuto como? ./myfile.jar

Respuesta1

Cuando ejecuta su jar, java -jar myfile.jarle está diciendo a su shell que ejecute el javacomando y le pasa algunos argumentos que javalo entienden. Sin embargo, cuando lo ejecuta, ./myfile.jarle pide al shell que determine el interruptor con el que ejecutarlo, lo cual no puede hacer.

El shell busca la línea shebang al principio del script para saber con qué aplicación ejecutar el script, por lo que verá scripts de shell que comienzan con:

#!/bin/bash

O los scripts de Python comienzan con

#!/usr/bin/python

Lo que le estás diciendo al shell, básicamente, es que ejecute el script usando la aplicación que encuentras en /bin/basho /usr/bin/python. En el caso de su archivo jar, el shell no puede encontrar el shebang, por lo que no sabe cómo ejecutar el código.

En el pasado, he usado scripts contenedores para ejecutar aplicaciones Java, por lo que es algo similar a:

#!/bin/bash

java -jar /path/to/myfile.jar

Luego solo necesita hacerlo ejecutable, usando chmody puede ejecutarlo como lo haría con cualquier otro script de Shell.

Respuesta2

Había instalado jdk usando sudo apt-get install openjdk-7-jdk y jre usando sudo apt-get install openjdk-7-jre pero aún tenía este problema. Pensé que esto podría deberse a que mi sistema no pudo encontrar la ruta de Java. Finalmente, cuando instalé el instalador de Oracle jdk7 usando los siguientes comandos, pude ejecutar el archivo .jar usando el comando ./myfile.jar. Utilicé los siguientes comandos para instalarlo:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-obtener actualización

sudo apt-get install oracle-jdk7-installer

información relacionada