Page 1 of 1

java se linux

Posted: Sun May 16, 2004 7:03 pm
by jimmyD
bash: javac: command not found
Αυτό είναι το αποτέλεσμα των εντολών javac και java. Από όσο κατάλαβα πρέπει να προσθέσω κάποιο path στο bash . Πως θα το κάνω αυτό ??? Please help

Posted: Sun May 16, 2004 8:40 pm
by vagalati
export PATH=$PATH:<<Το path πρός το javac>>

Βάλε το παραπάνω στο /etc/profile ή στο ~/.profile

Posted: Mon May 17, 2004 1:52 pm
by HdkiLLeR
Βασικά μήπως δεν είναι και εγκατεστημένη η java;

Για κάνε ένα find / -name java* -print και εαν σου βγάλει αποτελέσματα τότε είναι το path αλλιώς περασέ την πρώτα.

Posted: Mon May 17, 2004 2:48 pm
by crontab
Kάνε και ένα whereis javac (που κοιτάει στην whatis database ) και αυτό που σου είπε ο HdKiller κανε το με java / -name "java*" -print αλλιώς το χαρακτήρα μπαλαντέρ θα τον μεταφράσει ο φλοιός..
Εάν χρησιμοποιείς Mandrake ρώτα και την rpm db με rpm -ql | grep "java"

Posted: Mon May 17, 2004 3:03 pm
by HdkiLLeR
crontab wrote:...κανε το με java / -name "java*" -print αλλιώς το χαρακτήρα μπαλαντέρ θα τον μεταφράσει ο φλοιός..
Μπά μια χαρά θα είναι:

Από query στο venus

Code: Select all

root@venus:~# find / -name java* -print
/home/j2sdk1.4.2_04/jre/bin/java
/home/j2sdk1.4.2_04/jre/bin/java_vm
/home/j2sdk1.4.2_04/jre/lib/security/java.security
/home/j2sdk1.4.2_04/jre/lib/security/java.policy
/home/j2sdk1.4.2_04/jre/javaws
/home/j2sdk1.4.2_04/jre/javaws/javalogo52x88.gif
/home/j2sdk1.4.2_04/jre/javaws/javaws
/home/j2sdk1.4.2_04/jre/javaws/javaws-l10n.jar
/home/j2sdk1.4.2_04/jre/javaws/javaws.policy
/home/j2sdk1.4.2_04/jre/javaws/javawsbin
/home/j2sdk1.4.2_04/jre/javaws/javaws.jar
/home/j2sdk1.4.2_04/bin/java
/home/j2sdk1.4.2_04/bin/javac
/home/j2sdk1.4.2_04/bin/javadoc

Posted: Mon May 17, 2004 3:26 pm
by crontab
Καταρχάς ηθελα να γράψω find / -name "java*" -print (αντί για java / -...)
Sorry.
Κατα δεύτερον αυτό που λες συμβαίνει γιατί ο φλοιός bourne again shell εάν δε βρει στο cwd αρχείο/α που να αρχίζουν με το string "java" δεν τα μεταφράζει και περνάει το string java* στην εντολή find.
Εάν όμως είχες:
1) 1 αρχείο (πχ java.txt ) αυτό θα μεταφραζόταν σαν
find / -name java.txt -print
2) 2 η περισσότερα αρχεία τότε θα μεταφραζόταν σαν
find / -name java.txt java.doc java.pdf -print ..που θα σου έβγαζε λάθος.
Ο φλοιός csh και tcsh εάν δεν κάνουν pattern matching (δηλαδή δε βρουν αρχεία που αρχίζουν με java τότε δεν περνά αυτο καθαυτό το string )
Για παράδειγμα κάνε echo sdsdasd* στο bash και κάνε το ίδιο και στο csh να δεις διαφορά. :)

Posted: Mon May 17, 2004 6:22 pm
by HdkiLLeR
Ναι ότνως έχεις δίκιο.

Το bash θα έχει πρόβλημα και το csh δεν κάνει καν parse.

Posted: Mon May 17, 2004 6:28 pm
by jimmyD
Λόγω εργασίας στις βάσεις δεν ασχολήθηκα με τη ρύθμιση του lin. Αν στο path βάλω το φάκελο bin που έχει όλα τα σχετικα με java μέσα θα δουλέψει ή θέλει έν ένα???

Posted: Mon May 17, 2004 8:48 pm
by HdkiLLeR
Όχι δεν χρειάζετε να τα βάλεις ένα - ένα απλά δίνεις το full path στο bin dir. Πχ export PATH=$PATH:usr/local/jdk-1.4/bin.

Posted: Tue May 18, 2004 12:52 am
by jimmyD
sorry αλλά κάτι κάνω λάθος. Α) πρεπει να είμαι root? Β) όταν κανω το export πρέπει να είμαι σε κάποιο συγκεκριμένο φάκελο??? Γ)Τι εννοεί ο vagalati με το βάλτο στο etc/profile πως θα το βάλω εκεί ?? πρέπει να εκτελέσω κι άλλες εντολές Δ)μια σύντομη περιγραφή της export Sorry αν γίνομαι φορτικός

Posted: Tue May 18, 2004 1:00 am
by HdkiLLeR
1)Εάν το κάνεις σαν root,τότε δεν θα ισχύει όταν κάνεις login σαν άλλος user(ο κάθε χρήστης έχει τις προσωπικές μεταβλητές περιβάλλοντος).
2)Όχι είναι global ρύθμηση που σχετίζεται με το session που δουλεύεις(δηλαδή δεν θα ισχύει στο επόμενο login).
3)Το /etc/profile είναι το αρχείο που εκτελείται πρώτο απο το shell σου όταν κάνεις login(υπάρχει και το .profile στο home dir σου).

Εάν υπάρχει .profile στο home dir σου τότε εκτελείται αυτό. Συνεπώς το κάνεις edit(vi/vim/nano .profile) και στο PATH προσθέτεις το παραπάνω. Εάν δεν υπάρχει .profile στο home dir τότε φορτώνεται το etc/profile οπότε τις αλλαγές κάντες σε αυτό(υπόψην σε αυτήν την περίπτωση θα είναι global,θα ισχύουν δηλαδή για όλους τους users - που δεν έχουν .profile στο home dir τους)

Αυτό το κάνεις για να ισχύει σε κάθε login το παραπάνω path και να μην το χαναφράφεις όταν θέλεις να χρησιμοποιήσεις την java.

Posted: Tue May 18, 2004 2:23 pm
by vagalati
HdkiLLeR wrote: Εάν υπάρχει .profile στο home dir σου τότε εκτελείται αυτό. Συνεπώς το κάνεις edit(vi/vim/nano .profile) και στο PATH προσθέτεις το παραπάνω. Εάν δεν υπάρχει .profile στο home dir τότε φορτώνεται το etc/profile οπότε τις αλλαγές κάντες σε αυτό(υπόψην σε αυτήν την περίπτωση θα είναι global,θα ισχύουν δηλαδή για όλους τους users - που δεν έχουν .profile στο home dir τους)
Oταν ξεκινα ο shell πρωτα εκτελει το /etc/profile, και μετα το ~/.profile του αντιστοιχου χρηστη. Αν θελεις η java να ειναι εμφανισιμη σε ολους τους χρηστες βαζεις την παραπανω εντολη στο /etc/profile, αν θελεις σε εναν την βαζεις στο ~/.profile. Για να σε βοηθησω να καταλαβεις , αυτα τα αρχεια ειναι σαν το autoexec.bat στο dos.

Posted: Wed May 19, 2004 3:23 am
by HdkiLLeR
Μου φαίνεται το .profile κάνει overidde το /etc/profile εάν υπάρχει. Δεν ξέρω όμως δεν έιμαι σίγουρος. Σε κάθε περίπτωση εάν το βάλει στο .profile θα είναι οκ.

Posted: Wed May 19, 2004 11:54 am
by vagalati
Όχι ρε! Τότε πως θα ήταν εμφανές το default path στον χρήστη (/usr/bin ...) αφού ορίζεται μόνο στο /etc/profile;

Posted: Wed May 19, 2004 1:22 pm
by HdkiLLeR
Ναι όντως ...δεν ξαναγράφω βράδυ κοιμάμαι όρθιος φαίνεται :-D :-D