H Java είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού η οποία δημιουργήθηκε από τη Sun Microsystems και πλέον ανήκει στην Oracle. ...

Εγκατάσταση εφαρμογών Java? Ίσως και να γίνεται!

H Java είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού η οποία δημιουργήθηκε από τη Sun Microsystems και πλέον ανήκει στην Oracle.

Java_Logo
  H ιδιαιτερότητα της γλώσσας αυτής και κάτι που την έκανε πολύ δημοφιλή βέβαια είναι η ικανότητά της να  τρέχει παντού, ανεξαρτήτως λειτουργικού συστήματος.

Το ίδιο εκτελέσιμο τρέχει σε Linux, το ίδιο σε Mac, το ίδιο και σε Windows, ένα τεράστιο πλεονέκτημα σε σχέση με άλλες γλώσσες προγραμματισμού όπου ο κώδικας από το ένα λειτουργικό στο άλλο διαφέρει πάρα πολύ και η μεταφορά σε άλλη πλατφόρμα είναι δύσκολη και επίπονη. Έτσι στην Java δεν θα συναντήσουμε (εξ' ορισμού) προγράμματα .rpm, .deb ή .exe.




 Στην java έχουμε εκτελέσιμα με την κατάληξη .jar. Τα εκτελέσιμα «τρέχουν» είτε με διπλό κλικ πάνω τους είτε με την εντολή

java -jar programma.jar

από την γραμμή εντολών.

   Όπως φαίνεται λοιπόν, δεν υπάρχει κάποιος προφανής τρόπος για εγκαταστήσουμε το πρόγραμμα αυτό στον υπολογιστή μας, δηλαδή να βρίσκεται μαζί με όλες τις άλλες μας εφαρμογές, στην κατηγορία που ανήκει.

Και δεν είναι καθόλου σπάνιο το να συναντάμε εφαρμογές .jar στο διαδίκτυο, η φύση των οποίων δυσκολεύει την χρήση τους σαν ένα πρόγραμμα σαν όλα τα άλλα. (Φυσικά υπάρχουν τρόποι για την δημιουργία .rpm, .deb ή .exe αρχείων, αλλά σε αυτό τον οδηγό θα δούμε κάτι πιο απλό).

 Για να καταφέρουμε να εγκαταστήσουμε ένα πρόγραμμα java στο υπολογιστή μας (ή να φτιάξουμε το εκτελέσιμο εγκατάστασης (intall.sh) για τους άλλους), πρέπει πρώτα να εξερευνήσουμε τον τρόπο με τον οποίο το Gnu/Linux διαχειρίζεται τα εκτελέσιμα αρχεία.   Στις διανομές Linux (και σε οτιδήποτε άλλο προέρχεται από το UNIX), τα εκτελέσιμα αποθηκεύονται στον φάκελο /usr/bin. Αν μεταβείτε σε αυτόν τον κατάλογο θα δείτε όλα τα προγράμματα που υπάρχουν στον υπολογιστή σας με την μορφή εκτελέσιμου. Οποιοδήποτε πρόγραμμα βρίσκεται σε εκείνο το κατάλογο είναι εγκατεστημένο.  

Παράδειγμα:

Ας δούμε ένα παράδειγμα πρώτα. Έστω ότι θέλουμε ένα πρόγραμμα που να μας «χτυπάει» την ειδοποίηση «you are awesome» κάθε φορά που έχουμε ανάγκη να το ακούσουμε. Ο κώδικας του προγράμματος αυτού σε bash είναι ο ακόλουθος: (πρέπει να είμαστε root για να γράψουμε κάτι μέσα σε αυτό τον φάκελλο βέβαια)  
#!/bin/bash

notify-send “You are awesome”

 Το αποθηκεύουμε με το όνομα tell_me για παράδειγμα. Έπειτα το κάνουμε εκτελέσιμο δίνοντας την εντολή  

chmod +x tell_me

 

Έτσι κάθε φορά που θα δίνουμε την εντολή tell_me στην γραμμή εντολών θα εμφανίζεται η ειδοποίση που θέσαμε. Αυτό που πετύχαμε είναι να εγκαταστήσουμε την εφαρμογή μας!


Screenshot from 2013-05-02 20:46:51


( Στο Fedora (ίσως και σε άλλες διανομές) αντί του /usr/bin μπορεί να χρησιμοποιηθεί ο φάκελος bin που θα δημιουργήσετε στον /home/username κατάλογο. )  

Η Ιδέα:

Ας επιστρέψουμε όμως στο .jar πρόγραμμά μας. Το σκριπτάκι που θέλουμε να βρίσκεται στον /usr/bin είναι το σκριπτάκι που θα περιέχει την εντολή για την εκτέλεση του αρχείου java. Δηλαδή θα είναι κάπως έτσι(ακόμα και χωρίς το #!/bin/bash στην αρχή):

java -jar .BoxGame.jar

και το αποθηκεύουμε με το όνομα box για παράδειγμα (πρέπει να είμαστε root βέβαια).

Το αρχείο .BoxGame.jar πρέπει να βρίσκεται στον home folder. Το κάνουμε κρυφό (βάζοντας την τελεία μπροστά ) για να μην μας ενοχλεί όταν βρισκόμαστε στον /home ή σβηστεί από ατύχημα.




 Κάνουμε εκτελέσιμο με την chmod +x box και πλέον έχουμε πετύχει αυτό που θέλαμε. Σχεδόν! Αν δώσουμε box στην γραμμή εντολών η θα εκτελεστεί ο κώδικας που έχουμε μέσα στο αρχείο box (java -jar .BoxGame.jar ) και εφόσον έχουμε το .BoxGame.jar στον /home φάκελλο το πρόγραμμα θα ξεκινήσει κανονικά.   Αυτό που δεν έχουμε κάνει ακόμα είναι να προσθέσουμε την εφαρμογή μας στα υπόλοιπα προγράμματα που είναι εγκατεστημένα.

 Για να το κάνουμε αυτό πρέπει αρχικά να μεταβούμε στον κατάλογο .local/share/applications . Εκεί θα δούμε κάποια αρχεία με την κατάληξη .desktop. Το μόνο που έχουμε να κάνουμε είναι να φτιάξουμε και εμείς ένα τέτοιο αρχείο! Το αρχείο πρέπει να έχει την παρακάτω μορφή:


[Desktop Entry]

Name=Box Game

Exec=box

Icon=/home/skaftanis/.icon_01.jpg

Type=Application

Categories=GTK;GNOME;Education;


 

Το σημαντικότερο πεδίο είναι το Exec. Εκεί πρέπει να τοποθετήσουμε την εντολή που εκτελεί το πρόγραμμά μας. Στο πεδίο Icon θέτουμε το path μιας φωτογραφίας όπου θέλουμε να φαίνεται σαν εικονίδιο της εφαρμογής μας.

Αφού αποθηκεύσουμε αυτό το αρχείο θα δούμε ότι το πρόγραμμά μας υπάρχει σαν ενδογενής εφαρμογή στην κατηγορία που ορίσαμε.

 Screenshot from 2013-05-02 21:12:12
 

Κάτι που να τα κάνει όλα μόνο του?

  Όλα αυτά μπορούν να γίνουν με ένα μικρό install.sh σκριπτάκι, το οποίο θα περιέχεται στο πακέτο της εφαρμογής σας μαζί με το .jar αρχείο (και πιθανώς ένα README με οδηγίες). Το αρχείo εγκατάστασης ακολουθώντας αυτά που κάναμε χειροκίνητα νωρίτερα είναι κάπως έτσι:  

#!/bin/bash cd /usr/bin su -c "echo java -jar .BoxGame.jar > box && chmod +x box" #για red hat based sudo -s "echo java -jar .BoxGame.jar > box && chmod +x box" #για debian based x=${username-`whoami`} cd /home/$x/.local/share/applications echo "[Desktop Entry]" >> BoxGame.desktop echo >> BoxGame.desktop echo Name="Box Game" >> BoxGame.desktop echo >> BoxGame.desktop echo Exec="box" >> BoxGame.desktop echo >> BoxGame.desktop echo Icon="/home/$x/.icon_01.jpg" >> BoxGame.desktop echo >> BoxGame.desktop echo Type="Application" >> BoxGame.desktop echo >> BoxGame.desktop echo Categories="GTK;GNOME;Education;" >> BoxGame.desktop notify-send "BoxGame installed!! oh yea!"

1 σχόλιο: