Menu

Probleme mit -Djava.library.path

Help
guenni
2012-07-18
2012-12-06
1 2 > >> (Page 1 of 2)
  • guenni

    guenni - 2012-07-18

    Hallo zusammen,
    ich beziehe mich auf die Anleitung von Raimund Hölle.  Auf meinem System mit Ubuntu 12.04 startet jdivelog nicht, wenn ich den Bereich "weiterer Parameter “-Djava.library.path” angeben per copy and paste aus der Anleitung übernehme. Vom Terminal aus gestartet erscheint folgende Fehlermeldung:

    /usr/bin/jdivelog: Zeile 12: -Djava.library.path=/opt/jdivelog/jdivelog-2.17/bin: Datei oder Verzeichnis nicht gefunden
    /usr/bin/jdivelog: Zeile 13: net.sf.jdivelog.jdiveLog-2.17: Kommando nicht gefunden.
    /code]
    Von java habe ich ja nun nicht wirklich Ahnung, daher stochere ich im Dunkeln. Welche Dateien/Verzeichnisse sucht jdivelog? Und welches Kommando ist gemeint?
    Ich stehe doch irendwie auf dem Schlauch!
    Abschließend noch der Inhalt meiner jaolt.jar:
    [code]#!/bin/bash
    PROGRAM_DIR="/opt/jdivelog/jdivelog-2.17/bin"
    SKIN_DIR="/opt/jdivelog/jdivelog-2.17/skins"
    JRE15_HOME="/usr/lib/jvm/java-6-openjdk-amd64/jre"
    if [ -z "$PROGRAM_DIR" ]; then
      PROGRAM_DIR=`dirname $0`
    fi
    CLASSPATH="${CLASSPATH}:/usr/share/java/RXTXcomm.jar"
    $JRE15_HOME/bin/java -cp $CLASSPATH -Dskindir=$SKIN_DIR
    -Djava.library.path=$PROGRAM_DIR -Djava.library.path=/usr/lib/jni
    net.sf.jdivelog.jdiveLog-2.17 $*[/code]
    Danke für die Hilfe
    
     
  • guenni

    guenni - 2012-07-18

    sorry, habe die Formatierung vermasselt! Ich hoffe, es ist trotzdem zu lesen!

     
  • Pascal Pellmont

    Pascal Pellmont - 2012-07-18

    Hallo

    So wie's aussieht hast Du "net.sf.jdivelog.jdivelog-2.17 $*" auf eine neue Zeile geschrieben, dies müsstejedoch auf der gleichen Zeile wie "$JRE15_HOME…" sein…

    Viel Erfolg
    Pascal

     
  • guenni

    guenni - 2012-07-18

    Hallo Pascal

    jo- wie blöd! Stimmt völlig! Jetzt bleibt nur noch eine Fehlermeldung:

    /usr/bin/jdivelog: Zeile 12: -Djava.library.path=/opt/jdivelog/jdivelog-2.17/bin: Datei oder Verzeichnis nicht gefunden
    

    Ich brauche etwas für eine eventuelle Antwort; mein "Chef" will mit mir kurz weg!

     
  • Pascal Pellmont

    Pascal Pellmont - 2012-07-18

    Diese Zeile muss auch noch an die vorhergehende angehängt werden ;-)

     
  • guenni

    guenni - 2012-07-18

    ist schon blöd, wenn man nicht genau durchblickt, was man da gerade macht. Nun habe ich zwar keine Fehlermeldung mehr, scheine aber einen Syntax-Fehler bzw. eine unvollständige Anweisung zu geben. Da läuft nämlich folgender Sermon durch (war vorher schon, habe es aber für allgemeine Meldungen gehalten) und jdivelog startet nicht:

    root@ubuntu-desktop-rgc:/home/rgcoenen# jdivelog
    Usage: java [-options] class [args...]
               (to execute a class)
       or  java [-options] -jar jarfile [args...]
               (to execute a jar file)
    where options include:
        -d32      use a 32-bit data model if available
        -d64      use a 64-bit data model if available
        -server   to select the "server" VM
        -jamvm    to select the "jamvm" VM
        -cacao    to select the "cacao" VM
        -zero     to select the "zero" VM
                      The default VM is server.
        -cp <class search path of directories and zip/jar files>
        -classpath <class search path of directories and zip/jar files>
                      A : separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
        -D<name>=<value>
                      set a system property
        -verbose[:class|gc|jni]
                      enable verbose output
        -version      print product version and exit
        -version:<value>
                      require the specified version to run
        -showversion  print product version and continue
        -jre-restrict-search | -jre-no-restrict-search
                      include/exclude user private JREs in the version search
        -? -help      print this help message
        -X            print help on non-standard options
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      enable assertions with specified granularity
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      disable assertions with specified granularity
        -esa | -enablesystemassertions
                      enable system assertions
        -dsa | -disablesystemassertions
                      disable system assertions
        -agentlib:<libname>[=<options>]
                      load native agent library <libname>, e.g. -agentlib:hprof
                      see also, -agentlib:jdwp=help and -agentlib:hprof=help
        -agentpath:<pathname>[=<options>]
                      load native agent library by full pathname
        -javaagent:<jarpath>[=<options>]
                      load Java programming language agent, see java.lang.instrument
        -splash:<imagepath>
                      show splash screen with specified image
    See http://java.sun.com/javase/reference for more details.
    root@ubuntu-desktop-rgc:/home/rgcoenen#
    
     
  • Pascal Pellmont

    Pascal Pellmont - 2012-07-18

    Hmm… Du hast nun eine Zeile dort:

    $JRE15_HOME/bin/java -cp $CLASSPATH -Dskindir=$SKIN_DIR -Djava.library.path=$PROGRAM_DIR -Djava.library.path=/usr/lib/jni net.sf.jdivelog.JDiveLog $*
    

    vor den "-D" jeweils 1 Leerschlag, vor net.sf.jdivelog.JDiveLog ebenfalls ein Leerschlag?

     
  • guenni

    guenni - 2012-07-18

    Ja, so sah es aus. Habe die Leerzeichen nun mal entfernt- ohne Erfolg. Zur Verdeutlichung: nun sieht es so aus (alles in einer Zeile):

    $JRE15_HOME/bin/java -cp $CLASSPATH-Dskindir=$SKIN_DIR-Djava.library.path=$PROGRAM_DIR-Djava.library.path=/usr/libjninet.sf.jdivelog.jdiveLog-2.17 $*

     
  • André Schenk

    André Schenk - 2012-07-18

    In Deinem letzten Skript fehlen nun Leerzeichen. :-)

    Was ich nicht verstehe: Ich habe auch Ubuntu 12.04 und bei mir funktioniert das mitgelieferte Shell-Skript "jdivelog". Warum nimmst Du denn nicht das?

    Tschüß André

     
  • guenni

    guenni - 2012-07-19

    Hallo André,

    das ist eine berechtigte Frage. Ich habe das schon versucht; bekam aber keinen Zugriff auf den Com Port, d. h. ich konnte keinen auswählen im Programm. Dann habe ich ziemlich viel gegoogled und experimentiert, bin aber nicht fündig geworden. Dann habe ich die RXTXcomm, welche mit dem Programm geliefert werden, entgegen dem Rat installiert. Da hatte ich dann Zugriff und konnte auch den OSTC 2N anbinden. Aber nur als root; und das ist ja auch nicht Sinn der Sache. Un wenn ich das richtig sehe, sind die mitgelieferten RXTXcomm 32 Bit und ich habe hier ein 64 Bit-System. Also habe ich wieder versucht, das ans Laufen zu bekommen nach der Anleitung von Raimund Hölle.
    Nur wenn es dann an den Syntax bei Java geht, dann bin ich einigermaßen aufgeschmissen. Beim Rest kann ich mir helfen (Wikiks und Foren bzgl. Linux gibt es ja zuhauf). Und nun stehe ich da und habe zuwenig Leerzeichen. Es ist zum Verzweifeln.

     
  • André Schenk

    André Schenk - 2012-07-19

    Hallo guenni,

    ich glaube, da werden verschiedene Probleme miteinander vermischt. Laß uns doch mal versuchen, da genauer draufzuschauen.

    Problem 1: mehrere Installationen von RXTX

    Ich habe das Gefühl, Du hast RXTX mehrmals installiert, einmal per Ubuntu-Paket und einmal mit dem JDiveLog-Installer. Da solltest Du Dich für eins entscheiden. Ich würde Dir empfehlen, die Version von JDiveLog zu benutzen und das Ubuntu-Paket mit "apt-get purge librxtx-java" zu deinstallieren.

    Problem 2: kein Com-Port in JDiveLog auswählbar

    Das könnte daran liegen, daß der Com-Port einen Namen hat, der vom RXTXComm.jar nicht als serieller Port angesehen wird. Es gibt da intern einen Filter, der nur bestimmte Portnamen durchläßt. Wie heißt denn der Com-Port unter Linux?

    Wenn ich Dich richtig verstehe, dann siehst Du einen Com-Port, seit Du das RXTXComm.jar mit JDiveLog installiert hast. Gut - ein Problem gelöst. :-)

    Problem 3: Zugriff nur als root

    Dazu müßte ich wissen, welche Zugriffsrechte der Com-Port hat ("ls -l /dev/tty…") und in welchen Gruppen Dein User ist ("id").

    Problem 4: 64bit

    Es stimmt nicht, daß JDiveLog nur 32bit-Libraries mitliefert. Es stimmt auch nicht, daß RXTXComm.jar 32bit ist. Das ist Java. :-) Die Unterscheidung 32bit - 64 bit gibt es nur bei nativem Code, also bei den dynamischen Libraries, hier "librxtxSerial.so".

    Möglicherweise hat der JDiveLog-Installer einen Fehler und die 64-bit-Libraries nicht kopiert. Dazu müßtest Du mir sagen, was "uname -a" und "ls -l $JRE15_HOME/jre/lib/x86_64/" sagen.

    Und zum Schluß noch ein Tip: Vergleiche doch einfach mal das mitgelieferte Skript "jdivelog"  mit Deinem eigenen, dann wirst Du die fehlenden Leerzeichen schon finden. ;-) So wie ich das sehe, machst Du nichts weiter als "-Djava.library.path=/usr/lib/jni" hinzuzufügen. Das ist der Pfad zu den Libraries, die das Ubuntu-Paket  "librxtx-java" mitgebracht hat.

    Tschüß André

     
  • guenni

    guenni - 2012-07-19

    Hallo André,

    danke für die Rückmeldung. Ja, es sind zuviele Baustellen auf einmal für mich. Vor allem bekommt man die verschiedensten Aussagen zur Installation, und da das Richtige zu finden, ist schwierig. Nun denn: Was habe ich bisher gemacht:

    1. jdivelog wieder deinstalliert
    2. die java-Bibliotheken von Ubuntu, wie von Dir geraten, deinstalliert
    3. jdivelog mit den dazugehörigen Bibliotheken als root installiert

    Nun habe ich wieder den Ausgangszustand: Als root kann ich das Programm starten und unter "Einstellungen -> Tauchcomputer" kann ich den COM-Port auswählen. Als normaler User geht dies nicht: Unter "Einstellungen -> Tauchcomputer" ist kein COM-Port wählbar. Das dies ein Rechteproblem ist, war eigentlich klar, weil es ja nur als root läuft.

    4. Die Ausgabe der Konsole bzgl. der Rechte der Geräte ergab:

    rgcoenen@ubuntu-desktop-rgc:~$ ls -l /dev/tty
    crw-rw-rw- 1 root tty 5, 0 Jul 19 19:51 /dev/tty
    rgcoenen@ubuntu-desktop-rgc:~$
    

    5. Vielleicht bin ich nun vorgeprescht, habe aber mal versuchsweise meinen user mit in die Gruppe "rtty" aufgenommen,
        was aber keine Wirkung hatte. Deshalb habe ich dies auch wieder aufgehoben. Soweit bin ich. Ich bin gespannt auf die
        Rückmeldung. Auf die Idee, die beiden Skripte zu vergleichen, bin ich natürlich nicht gekommen, wäre ja auch zu einfach ;-))

     
  • André Schenk

    André Schenk - 2012-07-19

    Hi guenni,

    eine wichtige Information fehlt noch: der Name des seriellen Ports. Schließe doch mal Deinen Tauchcomputer an den USB-Port und rufe dann "dmesg" auf. Die letzten Zeilen sind interessant. Und von dem müßte ich dann die Zugriffsrechte wissen, also nicht "ls -l /dev/tty", sondern "ls -l /dev/<Name des Ports>".

    Tschüß André

     
  • guenni

    guenni - 2012-07-19
    [ 3178.267849] usb 7-1: FTDI USB Serial Device converter now attached to ttyUSB0
    [ 3178.267862] usbcore: registered new interface driver ftdi_sio
    [ 3178.267863] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
    [ 3255.254238] CPU3: Core temperature above threshold, cpu clock throttled (total events = 74478)
    [ 3255.256273] CPU3: Core temperature/speed normal
    [ 3300.905271] [Hardware Error]: Machine check events logged
    [ 3304.996394] CPU1: Core temperature above threshold, cpu clock throttled (total events = 4894)
    [ 3304.997436] CPU1: Core temperature/speed normal
    [ 3337.428825] [Hardware Error]: Machine check events logged
    rgcoenen@ubuntu-desktop-rgc:~$ ls -l /dev/ttyUSB0
    crw-rw---- 1 root dialout 188, 0 Jul 19 20:39 /dev/ttyUSB0
    rgcoenen@ubuntu-desktop-rgc:~$
    
     
  • André Schenk

    André Schenk - 2012-07-20

    Aha, /dev/ttyUSB0 heißt das Ding. Jetzt müßte ich noch wissen, ob Du in der Gruppe "dialout" bist, also was sagt "id"?

    Tschüß André

     
  • guenni

    guenni - 2012-07-20

    Hallo André,

    super! Vielen Dank für Deine Hilfe! Leider habe ich Deine Antwort von gestern Abend nicht mehr gelesen; habe ich scheinbar übersehen. Allerdings haben Deine Fragen nach dem Portnamen und der Gruppenzugehörigkeit den Ausschlag gegeben. Nachdem diese Abfrage Deinerseits kam, fiel bei mir der Groschen (Cent?)! Natürlich war ich NICHT in die Gruppe dialout eingetragen. Ich wäre ja nie im Leben auf die Idee gekommen, dass mir der Zugang zu ttyUSB als Normaluser nicht erlaubt ist. Im Nachhinein hätte ich es jedoch wissen müssen; so ähnlich erging es mir mal mit einem SCSI-Flachbettscanner. Da musste ich Mitglied der Gruppe "disk" sein. Ich meine, wer mommt denn auf so eine Idee? Wenn sie wenigstens noch "scanner" o. ä. heißen würde!
    Um es kurz zu machen:
    1. user in dialout eingetragen
    2. sicherheitshalber Neustart und Neuanmeldung
    3. jdivelog gestartet
    4. TC gewählt
    5. Protokoll und Port gewählt
    6. Verbindung steht.

    Da noch kein Tauchgang drauf ist, gibt es auch nichts zu übertragen. Die Statusanzeige des TC hat sich aber geändert. Daher gehe ich mal davon aus, dass es funktioniert.

    VIELEN VIELEN DANK für Deine hervorragende Hilfe!!!! Du siehst mich auf Knien ;-) Ohne hätte ich es wohl nicht geschafft! Das waren einfach zuviele Stellschrauben und zuviel Unwissenheit meinerseits.

     
  • guenni

    guenni - 2012-07-27

    Hmmmm,

    Kommando zurück!

    Ist zwar schon etwas her seit meinem letzten Posting, aber ich sitze hier gerade und stelle fest, dass nunmehr drei Tauchgänge im TC sind, auch eine Übertragung beim Verbinden von TC und PC  angezeigt wird, aber im Endeffekt keine Tauchgänge in jidvelog erscheinen. Da scheint doch noch was verbogen zu sein. Hat da jemand Ideen?

     
  • André Schenk

    André Schenk - 2012-07-30

    Ich habe hier ein jdivelog.jar abgelegt, das eine Datei "/tmp/ostc.data" anlegt, wenn der Download geklappt hat.

    Kannst Du mal schauen, ob die Datei bei Dir erzeugt wird und sie mir schicken?

    Tschüß André

     
  • guenni

    guenni - 2012-08-11

    Hallo André,

    leider konnte ich Dir nicht früher antworten, da ich bis gestern in Urlaub war und somit keine konstante Internetanbindung vorhanden war. Ich habe die Datei heruntergeladen (vielen Dank für deine Bemühungen), ausgeführt und die ostc.data abgespeichert. Du findest sie unter

    https://www.dropbox.com/sh/5z9gn6nhealskx5/0EntWskiZw,

    wenn denn alles funktioniert hat. Sollte dies nicht der Fall sein, melde Dich bitte!

    LG

    Ralf-Günther

     
  • guenni

    guenni - 2012-08-11

    Hi, ich bin es nochmal. Ich habe jdivelog mal als rrot von der Konsole her gestartet und folgende Meldungen erhalten, die auf einen Fehler hindeuten dürften:

    root@debian-laptop-rgc:/opt/jdivelog/jdivelog-2.17/bin# ./jdivelog
    Experimental:  JNI_OnLoad called.
    Stable Library
    =========================================
    Native lib Version = RXTX-2.1-7
    Java lib Version   = RXTX-2.1-7
    11.08.2012 17:30:42 net.sf.jdivelog.comm.CommUtil initialize
    INFO:    INFO: Initializing JavaCommAPI Comm Ports
    WARNING: javax.comm-Classes not found! JavaCommAPI support disabled!
       INFO: Initializing RXTX-2.1 Comm Ports
       INFO: RXTX Port found: /dev/ttyUSB0
       INFO: CommUtil initialization finished.
    Exception in thread "Thread-4" java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at net.sf.jdivelog.ci.ostc.ParseUtil.extractAndSortProfiles(ParseUtil.java:72)
        at net.sf.jdivelog.ci.ostc.OSTCProtocol080115.extractDives(OSTCProtocol080115.java:540)
        at net.sf.jdivelog.ci.ostc.OSTCProtocol080115.parseAll(OSTCProtocol080115.java:245)
        at net.sf.jdivelog.ci.ostc.AbstractOSTCProtocol.download(AbstractOSTCProtocol.java:132)
        at net.sf.jdivelog.ci.OSTCInterface.transfer(OSTCInterface.java:229)
        at net.sf.jdivelog.gui.MainWindow$11.run(MainWindow.java:2253)
    

    Ähnliche Meldungen bekomme ich auch, wenn ich versuche, die Einstellungen des OSTC auszulesen, in einem Meldungsfenster.

     
  • André Schenk

    André Schenk - 2012-08-14

    Hallo Ralf-Günther,

    danke für die Datei! Den Fehler kann ich nachvollziehen. Sagst Du mir bitte noch, welche Firmware Dein OSTC hat?

    Entweder enthält Dein Computer immer noch keine Tauchgänge oder das Protokoll wurde verändert.

    Gibt es denn vom Hersteller eine Software zum Auslesen? Funktioniert es damit?

    Tschüß André

     
  • guenni

    guenni - 2012-08-15

    Hallo André,

    installiert ist die Version 2.21, die aktuell verfügbare Version im Netz ist die 2.50. Eine Auslesesoftware gibt es beim Hersteller nicht, jedoch kommuniziert der OSTC mit diversen Auslesesoftwares, u. a. eben (normalerweise) auch mit jdivelog.  Da ich mit Linux arbeite, laufen jedoch Windows-Programme nicht wirklich; WINE habe ich bisher gemieden,
    Bis bald

    Ralf-Günther

     
  • André Schenk

    André Schenk - 2012-08-16

    Hallo Ralf-Günther,

    ich habe mir inzwischen die Protokollbeschreibung geholt und gesehen, daß Du 2.21 hast. :-)

    In der Beschreibung steht auch, daß seit der Version 1.91 der Puffer für die Logfiles von 32K auf 64K erhöht wurde. JDiveLog hat aber immer nur 32K heruntergeladen.

    Ich habe auf meiner o.g. Webseite ein neues jdivelog.jar bereitgelegt. Probiere das doch bitte mal aus. Wenn es damit immer noch nicht klappt, dann müßtest Du mir nochmal ein ostc.data geben.

    Tschüß André

     
  • André Schenk

    André Schenk - 2012-08-20

    Hallo Ralf-Günther,

    welche OSTC-Protokollversion hast Du in JDiveLog eigentlich voreingestellt?

    Tschüß André

     
  • guenni

    guenni - 2012-08-20

    Hallo André,

    entschuldige die schleppenden Antworten, ich bin familiär und dienstlich ziemlich eingebunden. Ich habe verschiedene Einstellungen durchprobiert. "Auto" funktioniert gar nicht; Fehlermeldung: "Protokoll nicht gesetzt". Alle anderen habe ich dann der Reihe nach durchprobiert und es führte alles zum schonbekannten Ergebnis.

    Tschüss

    Ralf-Günther

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Auth0 Logo