¿Cómo puedo ejecutar un archivo .jar desde el terminal?

Sé que para ejecutar un archivo, utilizo el comando . y luego el nombre del archivo con un espacio entre ellos. Pero estoy tratando de ejecutar un archivo .jar usando el . y no funciona. He entrado en las propiedades y lo he marcado como ejecutable y lo he hecho funcionar con Java.

¿Hay alguna forma de ejecutar un archivo con Java en la terminal Bash? Estoy tratando de ejecutar un archivo Minecraft.jar]1

Estoy tratando de ejecutar el archivo Minecraft.jar.

Solución

La sintaxis . sólo puede utilizarse para ejecutar (mediante "sourcing") scripts de shell.

Tendrás que utilizar el comando java para ejecutar un archivo .jar:

java -jar Minecraft.jar

Si no tienes java instalado, puedes arreglarlo instalando el paquete default-jre¹. Puedes ver si ya tienes java instalado ejecutándolo en un terminal:

java -version 

[1]: Esto instalará el tiempo de ejecución de Java openjdk por defecto. Puede utilizar openjdk-8-jre, o openjdk-7-jre, o openjdk-6-jre en su lugar, si lo prefiere - lo que esté disponible en su versión de Ubuntu.

Comentarios (1)

Linux es perfectamente capaz de ejecutar un binario extraño, como un archivo JAR. Así es como funciona Wine, por ejemplo. Para ejecutar archivos JAR como ejecutables haga lo siguiente en una consola

sudo apt-get install binfmt-support

Cd a tu archivo JAR y cámbialo a ejecutable (también puedes hacerlo a través de las propiedades del archivo en Nautilus)

chmod a+rx myjar.jar

Ejecute su archivo jar como si fuera cualquier otro ejecutable binario o script de shell

./myjar.jar

Nota: Asegúrese de tener cargado el módulo del kernel de linux binfmt_misc. Si utiliza su kernel compilado personalizado sin este módulo, binfmt-support no funcionará.

Comentarios (2)

Si se trata de un tarro ejecutable, entonces

java -jar Minecraft.jar 

No todos los archivos jar contienen una clase ejecutable, declarada para ser iniciada en el archivo Manifest, pero si la hay, esto funcionará.

Por cierto..: La mayoría de los programas no se inician desde el shell con el punto. El punto es un atajo para source, y sólo funciona en el bash y algunos otros shells, para incluir un script en el ámbito de la sesión actual.

Un binario compilado xybin simplemente se inicia con su nombre si está en la ruta:

xybin 

o, con su ruta absoluta:

/home/foo/proj/test/xybin

o con su ruta relativa:

proj/test/xybin

o si se encuentra en el directorio del archivo, con esta ruta relativa:

./xybin

El archivo tiene que estar marcado como ejecutable para ti (ver: chmod). Todo lo anterior es cierto para los shellscripts también, pero a menudo tienen una extensión .sh, y usted puede iniciar un shellscript invocando el intérprete, y entonces no necesita ser marcado como ejecutable:

 bash xy.sh

Si no quieres iniciar un nuevo bash, puedes usar source, y lo haces, para consumir definiciones de funciones, alias y configuraciones de variables.

Comentarios (0)