Ξέρω ότι για να εκτελέσω ένα αρχείο, χρησιμοποιώ την εντολή .
, μετά το όνομα του αρχείου με ένα κενό ανάμεσά τους. Αλλά προσπαθώ να εκτελέσω ένα αρχείο .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 σας.
Το 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 δεν θα λειτουργήσει.
Αν πρόκειται για ένα εκτελέσιμο 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, και το κάνετε, για να καταναλώσετε ορισμούς συναρτήσεων, ψευδώνυμα και ρυθμίσεις μεταβλητών.