Hvordan kan jeg udføre en .jar-fil fra terminalen

Jeg ved, at for at udføre en fil skal jeg bruge kommandoen . og derefter filnavnet med et mellemrum imellem dem. Men jeg forsøger at udføre en .jar-fil ved hjælp af ., og det virker ikke. Jeg gik ind i egenskaberne og markerede den som eksekverbar og fik den til at køre med Java.

Er der en måde at udføre en fil med Java i Bash-terminalen på?

Jeg forsøger at udføre filen Minecraft.jar.

Løsning

Syntaksen . kan kun bruges til at køre (ved at "sourcing") shell-scripts.

Du skal bruge kommandoen java for at køre en .jar-fil:

java -jar Minecraft.jar

Hvis du ikke har java installeret, kan du rette op på det ved at installere pakken default-jre¹. Du kan se, om du allerede har java installeret ved at køre i en terminal:

java -version 

[1]: Dette vil installere standard openjdk Java runtime. Du kan bruge openjdk-8-jre, eller openjdk-7-jre, eller openjdk-6-jre i stedet, hvis du foretrækker det - alt efter hvad der er tilgængeligt i din version af Ubuntu.

Kommentarer (1)

Linux kan sagtens køre en fremmed binær fil, f.eks. en JAR-fil. Sådan fungerer Wine for eksempel. For at køre JAR-filer som eksekverbare filer skal du gøre følgende i en konsol

sudo apt-get install binfmt-support

Cd til din JAR-fil og ændre den til eksekverbar (du kan også gøre dette via filegenskaber i Nautilus)

chmod a+rx myjar.jar

Kør din jar-fil som om det var en hvilken som helst anden binær eksekverbar fil eller et shell-script

./myjar.jar

Bemærk: Sørg for, at du har binfmt_misc linux-kernemodulet indlæst. Hvis du bruger din brugerdefinerede kompilerede kerne uden dette modul, vil binfmt-support ikke fungere.

Kommentarer (2)

Hvis det er en eksekverbar jar, skal

java -jar Minecraft.jar 

Ikke alle jar-arkiver indeholder en eksekverbar klasse, der er erklæret for at blive startet i Manifest-filen, men hvis der er en, vil dette fungere.

Btw..: Du behøver ikke starte de fleste programmer fra shell med punktummet. Punktet er en genvej for source, og det virker kun i bash og nogle andre shells, til at inkludere et script i den aktuelle session.

En kompileret binær xybin startes simpelthen med sit navn, hvis det er i stien:

xybin 

eller med dens absolutte sti:

/home/foo/proj/test/xybin

eller med dens relative sti:

proj/test/xybin

eller, hvis du tilfældigvis befinder dig i filens mappe, med denne relative sti:

./xybin

Filen skal være markeret som eksekverbar for dig (se: chmod). Alt ovenstående gælder også for shellscripts, men de har ofte en udvidelse .sh, og du kan starte et shellscript ved at påkalde fortolkeren, og så behøver det ikke at være markeret som eksekverbart:

 bash xy.sh

Hvis du ikke ønsker at starte en ny bash, kan du bruge source, og det gør du, for at forbruge funktionsdefinitioner, aliaser og variabelindstillinger.

Kommentarer (0)