Come posso eseguire un file .jar dal terminale

So che per eseguire un file, uso il comando ., poi il nome del file con uno spazio tra loro. Ma sto cercando di eseguire un file .jar usando il comando . e non funziona. Sono andato nelle proprietà e l'ho contrassegnato come eseguibile e l'ho fatto eseguire con Java.

C'è un modo per eseguire un file con Java nel terminale Bash? Sto cercando di eseguire un file Minecraft.jar]1

Sto cercando di eseguire il file Minecraft.jar.

Soluzione

La sintassi . può essere usata solo per eseguire (tramite "sourcing") script di shell.

Dovrai usare il comando java per eseguire un file .jar:

java -jar Minecraft.jar

Se non hai installato java, puoi rimediare installando il pacchetto default-jre¹. Puoi vedere se hai già installato java eseguendo in un terminale:

java -version 

[1]: Questo installerà il runtime Java openjdk di default. Puoi usare openjdk-8-jre, o openjdk-7-jre, o openjdk-6-jre invece, se preferisci - quello che è disponibile nella tua versione di Ubuntu.

Commentari (1)

Linux è perfettamente in grado di eseguire un binario estraneo, come un file JAR. Questo è il modo in cui funziona Wine, per esempio. Per eseguire i file JAR come eseguibili, fate come segue in una console

sudo apt-get install binfmt-support

Cd al vostro file JAR e cambiatelo in eseguibile (potete anche farlo attraverso le proprietà del file in Nautilus)

chmod a+rx myjar.jar

Eseguite il vostro file jar come se fosse un qualsiasi altro eseguibile binario o script di shell

./myjar.jar

Nota: Assicuratevi di avere il modulo binfmt_misc del kernel linux caricato. Se usate il vostro kernel personalizzato compilato senza questo modulo, binfmt-support non funzionerà.

Commentari (2)

Se è un jar eseguibile, allora

java -jar Minecraft.jar 

Non tutti gli archivi jar contengono una classe eseguibile, dichiarata per essere avviata nel file Manifest, ma se c'è, questo funzionerà.

Btw.: Non si avvia la maggior parte dei programmi dalla shell con il punto. Il punto è una scorciatoia per source, e funziona solo nella bash e in alcune altre shell, per includere uno script nell'ambito della sessione corrente.

Un binario compilato xybin è semplicemente avviato con il suo nome se è nel percorso:

xybin 

oppure, con il suo percorso assoluto:

/home/foo/proj/test/xybin

o con il suo percorso relativo:

proj/test/xybin

o se vi capita di essere nella directory del file, con questo percorso relativo:

./xybin

Il file deve essere segnato come eseguibile per voi (vedi: chmod). Tutto ciò è vero anche per gli shellscript, ma spesso hanno un'estensione .sh, e si può avviare uno shellscript invocando l'interprete, e quindi non ha bisogno di essere segnato come eseguibile:

 bash xy.sh

Se non si vuole avviare una nuova bash, si può usare il sorgente, e lo si fa, per consumare definizioni di funzioni, alias e impostazioni di variabili.

Commentari (0)