Πώς μπορώ να εκτελέσω ένα αρχείο .jar από το τερματικό

Ξέρω ότι για να εκτελέσω ένα αρχείο, χρησιμοποιώ την εντολή ., μετά το όνομα του αρχείου με ένα κενό ανάμεσά τους. Αλλά προσπαθώ να εκτελέσω ένα αρχείο .jar χρησιμοποιώντας την εντολή . και δεν λειτουργεί. Πήγα στις ιδιότητες και το χαρακτήρισα ως εκτελέσιμο και το έκανα να εκτελεστεί με τη Java.

Υπάρχει τρόπος να εκτελέσω ένα αρχείο με Java στο τερματικό Bash;

Προσπαθώ να εκτελέσω το αρχείο Minecraft.jar.

Λύση

Η σύνταξη . μπορεί να χρησιμοποιηθεί μόνο για την εκτέλεση (με "sourcing") σεναρίων κελύφους.

Θα πρέπει να χρησιμοποιήσετε την εντολή java για να εκτελέσετε ένα αρχείο .jar:

java -jar Minecraft.jar

Αν δεν έχετε εγκατεστημένη τη java, μπορείτε να το διορθώσετε εγκαθιστώντας το πακέτο default-jre¹. Μπορείτε να δείτε αν έχετε ήδη εγκαταστήσει τη java εκτελώντας το σε ένα τερματικό:

java -version 

[1]: Αυτό θα εγκαταστήσει το προεπιλεγμένο openjdk Java runtime. Μπορείτε να χρησιμοποιήσετε το openjdk-8-jre, ή το openjdk-7-jre, ή το openjdk-6-jre, αν προτιμάτε - όποιο είναι διαθέσιμο στην έκδοση του Ubuntu σας.

Σχόλια (1)

Το Linux είναι απολύτως ικανό να εκτελέσει ένα ξένο δυαδικό αρχείο, όπως ένα αρχείο JAR. Έτσι λειτουργεί το Wine, για παράδειγμα. Για να εκτελέσετε αρχεία JAR ως εκτελέσιμα κάντε τα εξής σε μια κονσόλα

sudo apt-get install binfmt-support

Cd στο αρχείο JAR σας και αλλάξτε το σε εκτελέσιμο (μπορείτε επίσης να το κάνετε αυτό μέσω των ιδιοτήτων του αρχείου στο Nautilus)

chmod a+rx myjar.jar

Εκτελέστε το αρχείο jar σας ακριβώς σαν να ήταν οποιοδήποτε άλλο εκτελέσιμο δυαδικό αρχείο ή σενάριο κελύφους

./myjar.jar

Σημείωση: Βεβαιωθείτε ότι έχετε φορτώσει τη μονάδα πυρήνα Linux binfmt_misc. Αν χρησιμοποιήσετε τον προσαρμοσμένο πυρήνα σας χωρίς αυτό το module, το binfmt-support δεν θα λειτουργήσει.

Σχόλια (2)

Αν πρόκειται για ένα εκτελέσιμο jar, τότε

java -jar Minecraft.jar 

Δεν περιέχουν όλα τα jar-αρχεία μια εκτελέσιμη κλάση, η οποία δηλώνεται για εκκίνηση στο αρχείο Manifest, αλλά αν υπάρχει, αυτό θα λειτουργήσει.

Btw.: Δεν ξεκινάτε'τα περισσότερα προγράμματα από το κέλυφος με την τελεία. Η τελεία είναι μια συντόμευση για το source, και λειτουργεί μόνο στο bash και σε μερικά άλλα κελύφη, για να συμπεριλάβετε ένα script στο πεδίο εφαρμογής της τρέχουσας συνεδρίας.

Ένα μεταγλωττισμένο δυαδικό xybin ξεκινάει απλά με το όνομά του, αν υπάρχει στη διαδρομή:

xybin 

ή, με την απόλυτη διαδρομή του:

/home/foo/proj/test/xybin

ή με τη σχετική διαδρομή του:

proj/test/xybin

ή αν τυχαίνει να βρίσκεστε στον κατάλογο του αρχείου, με αυτή τη σχετική διαδρομή:

./xybin

Το αρχείο πρέπει να χαρακτηριστεί εκτελέσιμο για εσάς (βλέπε: chmod). Όλα τα παραπάνω ισχύουν και για τα shellscripts, αλλά συχνά έχουν επέκταση .sh, και μπορείτε να ξεκινήσετε ένα shellscript καλώντας τον διερμηνέα, και τότε δεν χρειάζεται να χαρακτηριστεί εκτελέσιμο:

 bash xy.sh

Αν δεν θέλετε να ξεκινήσετε ένα νέο bash, μπορείτε να χρησιμοποιήσετε το source, και το κάνετε, για να καταναλώσετε ορισμούς συναρτήσεων, ψευδώνυμα και ρυθμίσεις μεταβλητών.

Σχόλια (0)