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