Batch file mit RXTX Library

d-roehrig

Mitglied
Hallo,

ich habe ein seltsames Problem. Ich entwickle eine Applikation die die serielle Verbindung nutzt. Dazu brauche ich das rxtx Library... das läuft auch soweit, wenn ich es fest in das jre Verzeichnis einbinde... zum Starten der Applikation habe ich jedoch jetzt ein Batchfile geschrieben, welches das starten komfortabler machen soll. Das sieht bei mir so aus:

Code:
@echo off
java -cp /rxtx/RXTXcomm.jar -Djava.library.path=/rxtx -jar dist/GUI.jar

es soll quasi die rxtx library direkt mit einbinden, ohne das man diese in das passende Verzeichnis schieben muss. Wenn ich bei mir die "fest in java" eingebundene rxtx Library lösche läuft es bei mir auf dem PC, aber woanders nicht. Entweder mache ich etwas falsch oder ich habe etwas vergessen zu löschen.

Zur Verständnis: Das Batchfile liegt im Root verzeichnis des Projekts. Darin befinden sich die Verzeichnisse dist (enthält meine geschrieben jar datei) und das Verzeichnis rxtx, welches die RXTXcomm.jar und die rxtxSerial.dll enthält.

Ich hoffe ihr könnt mir helfen :-O
Gruß
 
/rxtx ist eigentlich eine absolute Pfadangabe. Du möchtest aber eine relative zu deinem Ausführungsverzeichnis. Also entweder lässt du das / weg oder du verwendest ./
 
Hallo,

danke für die Antwort. Ich habe es aber leider auch ohne / und mit ./ versucht, jedoch klappt es nicht. Selbst ein Absoluter Pfad hilft nicht!

Muss ich denn .; auch noch mit in die Pfadangabe schreiben. Eigentlicht sollte er das doch automatisch machen... oder?

Habt ihr sonst noch eine Idee.
Grüße
 
Hi,

Hallo,

Wenn ich bei mir die "fest in java" eingebundene rxtx Library lösche läuft es bei mir auf dem PC, aber woanders nicht. Entweder mache ich etwas falsch oder ich habe etwas vergessen zu löschen.

Zur Verständnis: Das Batchfile liegt im Root verzeichnis des Projekts. Darin befinden sich die Verzeichnisse dist (enthält meine geschrieben jar datei) und das Verzeichnis rxtx, welches die RXTXcomm.jar und die rxtxSerial.dll enthält.

Ich hoffe ihr könnt mir helfen :-O
Gruß

Also ich glaube weniger dass Du was vergessen hast zu löschen, eher dass Du vielleicht irgendetwas nicht kopiert hast.
Meinst Du mit woanders läuft es nicht, dass die JVM die Bibliothek nicht findet, oder welch eine Fehlermeldung bekommst Du?
Ich habe mir angewöhnt eine Art Batch-Schablone zu verwenden, um generell Bibliotheksproblemen leicher Herr zu werden.
die sieht folgendermaßen aus unter Unix (bash):
Code:
#!/bin/sh

  export APP_HOME=/export/home/MeinAnwendungsverzeichnis 
 echo "Starting.."
  JAVA=/usr/java5_64/bin/java
  CLASSPATH="$APP_HOME/lib"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/MeineBibliothek.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/EineWeitereBibliothek.jar"
## entsprechend für jede library fortfahren!

  JAVAXOPTIONS="-Xms16M -Xmx512M"

  JAVAOPTIONS="-cp ${CLASSPATH}"

  JAVAPROPS="-DAPP_HOME=."

#  JAVAPROPS="${JAVAPROPS} -Djava.util.logging.config.file=log.properties"

  # Set main class for this service:
  #
  MAINCLASS=de/mein/packet/MeineKlasse
  # Start 
  #echo ${JAVA} ${JAVAPROPS} ${JAVAXOPTIONS} ${JAVAOPTIONS} ${MAINCLASS} $1 $2 $3 $4 $5 $6 $7 $8 $9
  ${JAVA} ${JAVAPROPS} ${JAVAXOPTIONS} ${JAVAOPTIONS} ${MAINCLASS} $1 $2 $3 $4 $5 $6 $7 $8 $9

die fettgedruckten sachen sind entsprechend Deinen Bedürfnissen anzupassen.
evntuell musst Du noch die erste und die Zeile mit der Angabe der Java-Maschine anpassen.

viel Spaß und Glück.

Takidoso

PS: bist Du sicher dass Du die Java-Bibliothek und auch Deine DLL auf Deinem Zielrechner kopiert hast?
 
Also der Fehler den ich bekomme lautet:

Code:
java.lang.NoClassDefFound: gnu/io/UnsupportedCommOperationException

Der Fehler ist weg wenn ich die RXTXcomm.jar und die rxtxSerial.dll in die passenden Java Verzeichnisse verschiebe.

Die Schablone hilft mir auch nicht weiter... nach wie vor das gleiche Problem. Kann es vielleicht ein Windows XP/Vista problem sein? Ich habe das Programm auf einer Vista Plattform entwickelt, aber es sollte eigentlich auch unter XP laufen (meiner Meinung nach zumindestens)

Ich bin mit meinem Wissen irgendwie am ende...

Grüße
Dennis
 
Also der Fehler den ich bekomme lautet:

Code:
java.lang.NoClassDefFound: gnu/io/UnsupportedCommOperationException

Der Fehler ist weg wenn ich die RXTXcomm.jar und die rxtxSerial.dll in die passenden Java Verzeichnisse verschiebe.

Die Schablone hilft mir auch nicht weiter... nach wie vor das gleiche Problem. Kann es vielleicht ein Windows XP/Vista problem sein? Ich habe das Programm auf einer Vista Plattform entwickelt, aber es sollte eigentlich auch unter XP laufen (meiner Meinung nach zumindestens)

Ich bin mit meinem Wissen irgendwie am ende...

Grüße
Dennis

Also klar ist auf jedenfall, dass Der ClassNotFound daraufhinweist, dass der Klassenpfad bei Dir nicht stimmt.
Wenn Du mit Vista arbeitest, kann die Schablone auch nicht gehen, denn die ist für Unix bestimmt, aber ähnliches kannst Du auch mit einer Batch bzw cmd Datei gestalten.
Versuche es doch nochmal mit absoluten Pfaden (also Laufwerksbuchstaben inbegriffen!).
hier noch ein Thread mit dem selben Thema in dem auch ein "CMD-Template" skizziert ist.
guckst Du hier

PS: vielleicht hängt aber der Hänger mit der DLL zusammen, ich weiß nicht genau wo die dann hin muss wenn Du Dich von den Standard-Lib Verzeichnissen der Java-Umgebung löst. Allerdingst würde ich dann eher einen Laufzeitfehler anderer Natur erwarten, der etwas mehr JNI-ähnlich klingt.
 
Zuletzt bearbeitet:
Mahlzeit!

Ich habs heraus bekommen. Mein Fehler war, dass ich dem Compiler den Classpath pfad gar nicht mit angegeben habe... Habe den Classpath pfad da auch mit angegeben und schon läuft es!

Grüße und vielen Dank für eure hilfe!
Dennis
 

Neue Beiträge

Zurück