ubuntuusers.de

Batch-Script in Shell-Script

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

casio

Anmeldungsdatum:
13. August 2007

Beiträge: 61

Wohnort: Erde

Moin,
mein Bruder braucht ein Batch-Skript fuer Linux, das ganze wurde auch schon umgeschrieben, es funktioniert leider noch nicht so ganz wie es soll.
Vielleicht findet ihr ja einen Fehler.

Die Batch Datei:
http://ubuntuusers.de/paste/29123/

Und die Bash:
http://ubuntuusers.de/paste/29125/

Danke schon mal.

Gruss

Onli Team-Icon

Ehemalige
Avatar von Onli

Anmeldungsdatum:
1. August 2005

Beiträge: 6941

Was genau klappt nicht, welche Fehlermeldung kommt? So auf den ersten Blick fällt mir nur auf, dass "...-bootclasspath "$NXJ_HOME/lib/classes..." in "...-bootclasspath "${NXJ_HOME}/lib/classes..." umgewandelt werden müsste, ebenso in den Zeile darunter.
Gruß

casio

(Themenstarter)

Anmeldungsdatum:
13. August 2007

Beiträge: 61

Wohnort: Erde

Danke fuer die Antwort, hab das mal verbessert.
Wenn man./nxj_do_all ausfuehrt passiert das hier.

ubuntu:~/Software/IT-Seminar/lejos_nxj/bin$ ./nxj_do_all /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe
Cleaning...
Compiling...
error: cannot read: /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.java
1 error
leJOS NXJ> Linking...
an error occurred: Class .media.TREKSTOR.IT-Seminar.kreis2.kreisaufgabe (file /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.class) not found in CLASSPATH .:/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/bcel-5.1.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/commons-cli-1.0.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/pctools.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//lib/pccomm.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/jtools.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/bluecove.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/classes.jar

Ausserdem sollte das ganze Script in Eclipse eingebunden werden. Wenn man es da ausfuehrt kommt immmer dass die Systemvariable "NXJ HOME" nicht definiert sei.
Achja, nach jedem Neustart muss man NXJ HOME neu als Systemvariable definieren, sonst kommt auch in der normalen Konsole die oben gennante Fehlermeldung.

casio

(Themenstarter)

Anmeldungsdatum:
13. August 2007

Beiträge: 61

Wohnort: Erde

Danke fuer die Antwort, hab das mal verbessert.
Wenn man./nxj_do_all ausfuehrt passiert das hier.

ubuntu:~/Software/IT-Seminar/lejos_nxj/bin$ ./nxj_do_all /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe
Cleaning...
Compiling...
error: cannot read: /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.java
1 error
leJOS NXJ> Linking...
an error occurred: Class .media.TREKSTOR.IT-Seminar.kreis2.kreisaufgabe (file /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.class) not found in CLASSPATH .:/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/bcel-5.1.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/commons-cli-1.0.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/pctools.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//lib/pccomm.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/jtools.jar:
/home/ich/Software/IT-Seminar/lejos_nxj//3rdparty/lib/bluecove.jar:/home/ich/Software/IT-Seminar/lejos_nxj//lib/classes.jar

Ausserdem sollte das ganze Script in Eclipse eingebunden werden. Wenn man es da ausfuehrt kommt immmer dass die Systemvariable "NXJ HOME" nicht definiert sei.
Achja, nach jedem Neustart muss man NXJ HOME neu als Systemvariable definieren, sonst kommt auch in der normalen Konsole die oben gennante Fehlermeldung.

maschino

Avatar von maschino

Anmeldungsdatum:
3. April 2007

Beiträge: 145

Du kannst das Setzen der NXJ Home Variable einfach automatisieren. Im Homeverzeichnis die Datei .bashrc öffnen und dort in eine neue Zeile export NXJ_HOME=/home/bla/bla einfügen. Damit sollte es funktionieren und wahrscheinlich auch von Eclipse erkannt werden.

Zu deinem anderen Problem kann ich leider nichts sagen.

Gruß,
maschino

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

funktionieren den alle kommandos wenn du sie einzeln durchführst ? Ich glaub da happerts bestimmt schon

Gruss – jerik

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

mach mal

chmod 777 /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.java

Sieht mir nach einem berechtigungsproblem aus.

Gruss – jerik

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

jerik hat geschrieben:

mach mal

chmod 777 /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.java

Sieht mir nach einem berechtigungsproblem aus.

Na toll, da hast du auch genau den richtigen Weg zur Lösung gezeigt. Warum sagst du ihm nicht gleich, er soll als root arbeiten? 🙄

Man gibt nur die Rechte, die man braucht. Java-Quellcode braucht definitiv keine Ausführungsrechte, und höchstwahrscheinlich auch nicht weltweiten Schreibzugriff.

chmodd 644 /pfad/zu/meiner/datei

muss reichen!

Allerdings sagt die Meldung nur aus, dass die Datei nicht gelesen werden kann. D.h. sie kann auch schlichtweg nicht existieren. Diese Umstand sollte man vielleicht zuerst überprüfen.

Greebo

Avatar von Greebo

Anmeldungsdatum:
21. November 2006

Beiträge: 3443

Wohnort: 97070 Würzburg

Nur so als Anmerkung, warum nimmt dein Bruder nicht Ant, bzw. wenn viel Elan vorhanden ist Apache_Maven die sind beide eigentlich genau für solche Sachen gedacht, plattformunabhängig und zumindest ANT standardmäßig in Eclipse unterstützt 😉.

casio

(Themenstarter)

Anmeldungsdatum:
13. August 2007

Beiträge: 61

Wohnort: Erde

Ich werd ihm mal die Links geben. Aber er braucht das fuer irgend ein Seminar, wo so ein Legoroboter programmiert wird. Die Datei dient dazu, den Code zu complimieren und auf den Roboter zu uebertragen. Also ob das mit den Links dann so sinnvoll ist, muss er entscheiden.

Greebo

Avatar von Greebo

Anmeldungsdatum:
21. November 2006

Beiträge: 3443

Wohnort: 97070 Würzburg

Na ja soweit ich die bisherigen Scripts lese, gehts ja erstmal hauptsächlich darum, java code zu kompilieren und zu ner sauberen Distribution zusammenzufassen, und da ist der Standard in der Java Welt halt ANT, das kann man sich wie ein spezialisiertes make mit ein paar Zusatztricks vorstellen. Maven ist dafür wohl oversized, aber ANT ist wirklich kein großes Ding und IMO für solche Aufgaben leichter/flexibler als Shellscripte, mehr als ein bisserl XML und 2-3 Beispiele ansehen braucht man nicht um das zu beherschen ☺, aber war nur ein Vorschlag.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4694

Wohnort: Berlin

Kann es sein, das es keine Datei mit dem Namen kreisaufgabe.java gibt, und die Kreisaufgabe.java heisst!?

casio

(Themenstarter)

Anmeldungsdatum:
13. August 2007

Beiträge: 61

Wohnort: Erde

So, heute kam eine neue E-Mail rein. Er hat wohl ein bisschen rumprobiert und auch die Tipps hier gelesen. Warum er sich hier aber nicht mal selbst anmelden kann wuerde ich gerne wissen...

Also dann spiel ich mal wieder den Vermittler.

Er hat es soweit gebracht dass es wohl complimiert wird. Dann kommt aber diese Fehlermeldung:

ubuntu:~/Software/IT-Seminar/lejos_nxj/bin$ ./nxj_do_all kreisaufgabe
Cleaning...
Compiling...
leJOS NXJ> Linking...
leJOS NXJ> Uploading...
leJOS NXJ> no jlibnxt in java.library.path
leJOS NXJ> no jbluez in java.library.path
an error occurred: Cannot load a comm driver

jbluez hat er (bzw ich...) im Internet gefunden, jlibnxt allerdings nicht. Allerdings, wo speichert man jbluez denn ab? /java-version/und/dann ???

P.S. Er hat mir mal die Dateien wo er braucht zusammengestellt.
Das sind:
Eclipse (git es fuer Linux)
Java Development Kit (gibts fuer Linux)
Lejos NXJ Firmware (gibt fuer Linux)
libusb-win32 (da wurde natuerlich die Linux Version genommen)
Mindstorm NXT Driver (das gibt noch Raetsel auf, wurde bisher nicht fuer Linux gefunden, geht das vill deshalb nicht?)
Sowie die oben geschriebene bat-Datei; wurde in eine Shell-Datei umgeschrieben.

Greebo

Avatar von Greebo

Anmeldungsdatum:
21. November 2006

Beiträge: 3443

Wohnort: 97070 Würzburg

Java nutzt dynamisches Linken, wenn du/er externe Bibliotheken nutzen willst, ist der üblich Weg die per -cp MyFirstForeign.jar:MySecondForeign.jar
etc. anzugeben...
Alternativ kann man auch sofern die Lizenz der Libraries das erlaubt, die Jars zur eigenen Jar dazupacken (nicht die Jar in die Jar, sondern den Inhalt der Jar in die Jar 😉). Vom globalen Library Path rät man eigentlich heutzutage ab, weil das gerne dazu führt, dass sich verschiedene Java Programme gegenseitig die Libraryversionen überschreiben/zerstören

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

Lunar hat geschrieben:

jerik hat geschrieben:

mach mal

chmod 777 /media/TREKSTOR/IT-Seminar/kreis2/kreisaufgabe.java

Sieht mir nach einem berechtigungsproblem aus.

Na toll, da hast du auch genau den richtigen Weg zur Lösung gezeigt. Warum sagst du ihm nicht gleich, er soll als root arbeiten? 🙄

Man gibt nur die Rechte, die man braucht. Java-Quellcode braucht definitiv keine Ausführungsrechte, und höchstwahrscheinlich auch nicht weltweiten Schreibzugriff.

chmodd 644 /pfad/zu/meiner/datei

muss reichen!

Allerdings sagt die Meldung nur aus, dass die Datei nicht gelesen werden kann. D.h. sie kann auch schlichtweg nicht existieren. Diese Umstand sollte man vielleicht zuerst überprüfen.

Das spart erstmal nerven, man kann es später immer noch auf die entsprechenden berechtigungen runterschrauben (ob mans macht ist wieder eine andere Frage). hmmm... neues tool, wusst garnicht das es chmodd gibt... was kann das den mehr 😈

cheers – jerik

Antworten |