Dimmu_Borgir Δημοσ. 3 Απριλίου 2006 Δημοσ. 3 Απριλίου 2006 Γειά σας, Γράφω ένα προγραμματάκι για λίνουξ και σε κάποια φάση πρέπει να τρέξω μια εντολή με: >Runtime.getRuntime().exec(command) Το θέμα είναι ότι το command περιέχει κενά. Γιαυτό το λόγο τα αντικαθιστώ με "\ ". Αλλά δεν δουλεύει... Το ίδιο command σε terminal δουλεύει μια χαρά... Καμιά ιδέα; Edit: Ξέχασα να πώ ότι το γράφω σε Java...
Legionnaire Δημοσ. 3 Απριλίου 2006 Δημοσ. 3 Απριλίου 2006 Δεν υπάρχει πρόβλημα με τα κενά. Αν δηλαδή θες να γράψεις την εντολή στο unix "ls -l | grep abc", στον κώδικα σου κάνε > String command = "ls -l | grep abc"; Runtime.getRuntime().exec(command);
zinas Δημοσ. 3 Απριλίου 2006 Δημοσ. 3 Απριλίου 2006 Ypotheto oti ennoei ta kena mesa se kapoio path (px /home/uname/My Something), opote pragmati xreiazetai to \ Stin tixi... dokimase to "\\ "
Dimmu_Borgir Δημοσ. 3 Απριλίου 2006 Μέλος Δημοσ. 3 Απριλίου 2006 Αυτό κάνω, replace " " με "\ " αλλά δεν δουλεύει. Στο terminal δουλεύει μια χαρά αλλά όχι μέσω Java
zinas Δημοσ. 4 Απριλίου 2006 Δημοσ. 4 Απριλίου 2006 Opos akrivos eipe o Cue... xreiazetai 2 "\" px. An exeis ena string: "string\n" auto tha emfanistei os "string" + nea grammi An esi theleis na sou emfanistei to "string\n" opos einai, tote prepei na to grapseis os "string\\n".
Dimmu_Borgir Δημοσ. 5 Απριλίου 2006 Μέλος Δημοσ. 5 Απριλίου 2006 Ναι το ξέρω αυτό για τον escape character... Και αν πρόσεξες είπα αντικαθιστώ " " με "\ " (χωρίς τα "", όχι στον κώδικα). Τελικά βρήκα λύση... Με χρήση String[] και όχι String, δηλαδή το command είναι String array και όχι απλό String...
Legionnaire Δημοσ. 10 Απριλίου 2006 Δημοσ. 10 Απριλίου 2006 Σταθείτε βρε παιδιά. Η Java υποστηρίζει τα κενά.
spinner Δημοσ. 18 Απριλίου 2006 Δημοσ. 18 Απριλίου 2006 Το "πρόβλημα" δεν είναι στην Java αλλά στο linux Θες να μας εξηγησεις το λογο γιατι το προβλημα ειναι στο linux ? Ειναι λαθος αυτο που κανατε μερικοι, να αντικαταστησετε τους κανονες που ισχυουν στο bash με αυτους που θα ισχυαν στην java.
Cue Δημοσ. 18 Απριλίου 2006 Δημοσ. 18 Απριλίου 2006 Θες να μας εξηγησεις το λογο γιατι το προβλημα ειναι στο linux ? Το "πρόβλημα" είναι όταν πας να κάνεις π.χ. cd σε ένα directory όπως "my white spaces folder" Ειναι λαθος αυτο που κανατε μερικοι' date=' να αντικαταστησετε τους κανονες που ισχυουν στο bash με αυτους που θα ισχυαν στην java.[/quote'] Θες να μου εξηγήσεις εσύ το συγκεκριμένο λάθος? :/ Αν και δε νομίζω πως με αφορά.
spinner Δημοσ. 27 Απριλίου 2006 Δημοσ. 27 Απριλίου 2006 Το "πρόβλημα" είναι όταν πας να κάνεις π.χ. cd σε ένα directory όπως "my white spaces folder" Θες να μου εξηγήσεις εσύ το συγκεκριμένο λάθος? :/ Αν και δε νομίζω πως με αφορά. Καλα για το πρωτο πες μας οτι κανεις πλακα ή απλα πες μας οτι δεν εχεις δουλεψει ποτε σε καποιο Unix shell... δεν σοβαρολογεις τωρα, ετσι ? Δεν υπαρχει κανενα απολυτως προβλημα.. Το bash, ειναι ετη φωτος μπροστα απο το cmd(<--αν θεωρηθει shell αυτο το πραγμα) των win2k family το οποιο οποτε το ανοιγω πρεπει να ριξω την συχνοτητα του εγκεφαλου μου για να το χρησιμοποιησω.. Οσον αφορα την JAVA και τα κενα, θα σου πω οτι εχω μηδαμινη εμπειρια απο JAVA. Τα UNIX shells ειναι interpreters και εχουν τους δικους τους κανονες για τα κενα. Αν θες να χρησιμοποιησεις JAVA στο UNIX και θες να δεις τι γινεται με τα κενα σε καποιο path θα πρεπει να κοιταξεις στο documentiation της JAVA...
Cue Δημοσ. 27 Απριλίου 2006 Δημοσ. 27 Απριλίου 2006 Συνεχίζω να μην καταλαβαίνω αυτά που γράφεις :/... Ίσως κάποιος άλλος να μπορεί να με διαφωτίσει.
spinner Δημοσ. 28 Απριλίου 2006 Δημοσ. 28 Απριλίου 2006 Συνεχίζω να μην καταλαβαίνω αυτά που γράφεις :/...Ίσως κάποιος άλλος να μπορεί να με διαφωτίσει. Εχεις επαφη με Linux/Unix ? Συγκεκριμενα τι δεν καταλαβαινεις ?
Cue Δημοσ. 28 Απριλίου 2006 Δημοσ. 28 Απριλίου 2006 Πιστεύω πως παρεξήγησες τα λεγόμενα μου. Το "πρόβλημα" (πρόσεξε τα εισαγωγικά) που αναφέρω για τα white spaces και το linux είναι ότι για να κάνεις π.χ. ένα cd σε κάποιο dir που το όνομα του περιέχει ws θα πρέπει είτε να τα κάνεις escape using backslash είτε να χρησιμοποιήσεις quotes. C'est ca.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.