Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Serielle Verbindung-->Libraries (libSerial.so) nicht auffindbar

0 views
Skip to first unread message

Erik Mautsch

unread,
Nov 10, 2003, 5:55:00 AM11/10/03
to
Hallo!

Ich hatte mein Problem schon einmal in dieser NG gepostet.
Habe dann einen Tipp bekommen, den LD_LIBRARY_PATH zu setzen. Dies
hatte ich vorher bereits gemacht. (export
LD_LIBRARY_PATH=/usr......./x386)
Vielleicht kann mir jemand anhand der Fehlermeldung weiterhelfen.

##############################################################
Exception in thread "main" java.lang.UnsatisfiedLinkError: no Serial
in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:832)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java)
at RS232.main(RS232.java:23)
emautsch@IP=46:~/projekt$
########################################################
Ist es überhaupt noch nötig, den PATH für die Libs zu setzen? Wenn ich
die .so Files im richtigen Ordner ablege, dann müssten die doch
automatisch gefunden werden.


Danke
Gruss
Erik

Lothar Kimmeringer

unread,
Nov 10, 2003, 6:03:50 AM11/10/03
to
Am 10 Nov 2003 02:55:00 -0800 schrieb Erik Mautsch:

> Ich hatte mein Problem schon einmal in dieser NG gepostet.
> Habe dann einen Tipp bekommen, den LD_LIBRARY_PATH zu setzen. Dies
> hatte ich vorher bereits gemacht. (export
> LD_LIBRARY_PATH=/usr......./x386)
> Vielleicht kann mir jemand anhand der Fehlermeldung weiterhelfen.
>
> ##############################################################
> Exception in thread "main" java.lang.UnsatisfiedLinkError: no Serial
> in java.library.path

Grosskleinschreibung ist zu beachten. Liegt bei Dir tatsaechlich
eine Datei "libSerial.so" im Verzeichnis oder nur eine "libserial.so"
(was eigentlich unter Unix ueblich ist). Bei letzterem solltest
Du dann auch ein loadLibrary("serial") verwenden und nicht
loadLibrary("Serial"). Unter Windows wuerde beides funktionieren,
daher mag dort der Fehler nie aufgetreten sein.


Gruesse, Lothar
--
Lothar Kimmeringer E-Mail: spam...@kimmeringer.de
PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)

Always remember: The answer is forty-two, there can only be wrong
questions!

Kurt Harders

unread,
Nov 10, 2003, 6:48:11 AM11/10/03
to
Hallo Erik,

"Erik Mautsch" <wikk...@t-online.de> schrieb im Newsbeitrag
news:c41137c0.03111...@posting.google.com...

> Ist es überhaupt noch nötig, den PATH für die Libs zu setzen? Wenn ich
> die .so Files im richtigen Ordner ablege, dann müssten die doch
> automatisch gefunden werden.

In welchen Ordnern gesucht wird, steht in /etc/ld.so.conf. Nach
Aenderungen ist ein ldconfig angebracht :-).

Gruss, Kurt

--
PiN - Präsenz im Netz GITmbH
Kurt Harders
http://www.pin-gmbh.com


Erik Mautsch

unread,
Nov 11, 2003, 1:55:29 PM11/11/03
to
On Mon, 10 Nov 2003 12:48:11 +0100, "Kurt Harders"
<ne...@kurt-harders.de> wrote:

>In welchen Ordnern gesucht wird, steht in /etc/ld.so.conf. Nach
>Aenderungen ist ein ldconfig angebracht :-).
>
>Gruss, Kurt

Danke.
Habe deinen Tipp umgesetzt und meinen Ordner dort hinzugefügt.
Leider bleibt die Fehlermeldung die gleiche...:(

Gruss
Erik

Erik Mautsch

unread,
Nov 11, 2003, 1:56:30 PM11/11/03
to
On Mon, 10 Nov 2003 12:03:50 +0100, Lothar Kimmeringer
<news2...@kimmeringer.de> wrote:


>Grosskleinschreibung ist zu beachten. Liegt bei Dir tatsaechlich
>eine Datei "libSerial.so" im Verzeichnis oder nur eine "libserial.so"

Die Grammatik sollte stimmen, da ich die .so Files mit mv dorthin
kopiert habe.

Gruss
Erik

Lothar Kimmeringer

unread,
Nov 11, 2003, 4:08:48 PM11/11/03
to

Irgendwie hast Du meine Frage nicht beantwortet. Steht in
der Source loadLibrary("Serial") oder loadLibrary("serial")?

Entsprechend muss im lib-Verzeichnis eine libSerial.so (das
was im Stacktrace als nicht gefunden angezeigt wird) oder
eine libserial.so stehen. Steht in Deinem lib-Verzeichnis
eine libserial.so, dann musst Du entweder in der Source
loadLibrary("serial") schreiben oder einen Link mit Namen
libSerial.so auf libserial.so anlegen.

Andreas Scott

unread,
Nov 11, 2003, 4:35:57 PM11/11/03
to
On Tue, 11 Nov 2003 19:56:30 +0100
Erik Mautsch <emau...@wi-bw.tfh-wildau.de> wrote:

Warum hast Du sie nicht mit cp verschoben? :-)

mv steht für move und bedeutet "verschieben".

Was das ganze mit Grammatik zu tun hat, verstehe ich nicht.

Was Du genau machen willst hast Du ja nicht geschrieben, aber ich
versuche mal Deinen Stacktrace zu interpretieren:

Der UnsatisfiedLinkError sagt Dir ja, dass die gesuchte Library nicht
gefunden wird. Welche Bibliothek willst Du denn laden? Klar, irgendwas
mit serial, aber was genau steht in Deinem Quelltext? Wahrscheinlich
rufst Du nur den Konstruktor von CommPortIdentifier auf, also ist der
rxtx-Treiber nicht richtig installiert.

In der Version 2.1 wird eine rxtxSerial gesucht, imho muss die
gesuchte Bibliothek "librxtxSerial.so" heissen. Evtl. gibt es da aber
auch noch ein Mapping.

Vielleicht liest Du mal die Installationshinweise auf
http://www.frii.com/~jarvi/rxtx/index.html
und/oder postest mal was in Deiner /etc/ld.so.conf steht, was in Deinem
LD_LIBRARY_PATH steht, wo Du Deine libs denn hingeschoben hast.

Dann sehen wir weiter.

ciao Scotti

p.s. meine Vermutung: Du vermischt irgendwas, falsche Versionen etc.

Erik Mautsch

unread,
Nov 13, 2003, 4:44:50 PM11/13/03
to
On Tue, 11 Nov 2003 22:35:57 +0100, Andreas Scott <sp...@scott-net.de>
wrote:

>Warum hast Du sie nicht mit cp verschoben? :-)
>
>mv steht für move und bedeutet "verschieben".

Ich kann doch die Libs aus meinem entpacktenm Ordner in das benötigte
Verzeichnis verschieben, da ich sie ja dort nicht mehr benötige.

>Der UnsatisfiedLinkError sagt Dir ja, dass die gesuchte Library nicht
>gefunden wird. Welche Bibliothek willst Du denn laden? Klar, irgendwas
>mit serial, aber was genau steht in Deinem Quelltext? Wahrscheinlich

#########################
import javax.comm.*;
import java.util.*;

public class RS232 {

static CommPortIdentifier portId;
static Enumeration portList;

public static void main(String[] args)
{
System.out.println("Liste der vorhandenen Ports");
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
portId = (CommPortIdentifier) portList.nextElement();
System.out.println(portId.getName());
}
}
}
##############################

>rufst Du nur den Konstruktor von CommPortIdentifier auf, also ist der
>rxtx-Treiber nicht richtig installiert.

Der Treiber, RXTXcomm.jar, liegt im jdk/jre/lib/ext Verzeichnis und
als entpackte Variante in meinem Verzeichnis, in dem ich die
selbstgeschriebenen Klassen ablege, also im CLASSPATH.

>
>In der Version 2.1 wird eine rxtxSerial gesucht, imho muss die
>gesuchte Bibliothek "librxtxSerial.so" heissen. Evtl. gibt es da aber
>auch noch ein Mapping.

Die .so Files sind doch schon mit dabei, ich kann diese doch nicht
einfach umbenennen, oder was?

>
>Vielleicht liest Du mal die Installationshinweise auf
>http://www.frii.com/~jarvi/rxtx/index.html
>und/oder postest mal was in Deiner /etc/ld.so.conf steht, was in Deinem
>LD_LIBRARY_PATH steht, wo Du Deine libs denn hingeschoben hast.

Die Install Anleitung habe ich gelesen. Ich habe auch andere
Anleitungen gelesen, leider führte keine zum Erfolg.
in /etc/ld.so.conf stehen eine Menge
Verzeichnisse-->/usr/local/lib......................
Dort habe ich dann auch meinen Ordner angegeben, in dem meine .so
Files liegen.
Danach habe ich dann ldconf ausgeführt.
Gebe ich set in der Bash ein, zeit er mir die gesetzten
Umgebungsvariablen an. LD_LIBRARY_PATH ist hier nicht zu finden.

>
>Dann sehen wir weiter.
>
>ciao Scotti
>
>p.s. meine Vermutung: Du vermischt irgendwas, falsche Versionen etc.

Habe es die Version 2.0.5/2.1.6 (Source), sowie 1.4/1.5 (Bin)
probiert. Alles hat nix gebracht.
Die Binary Version 1.5 ist eigentlich am einfachsten. Einfach das Jar
nach..../ext kopieren, in den CLASSPATH aufnehmen,anschliessend die
.so Files nach jdk...../lib/i386 kopieren und fertig.
Damit müssten oben aufgeführtes Programm laufen und die Ports sollten
angezeigt werden...:-(

Gruss
Erik

Andreas Scott

unread,
Nov 13, 2003, 5:53:59 PM11/13/03
to
On Thu, 13 Nov 2003 22:44:50 +0100
Erik Mautsch <emau...@wi-bw.tfh-wildau.de> wrote:

> >p.s. meine Vermutung: Du vermischt irgendwas, falsche Versionen etc.
>
> Habe es die Version 2.0.5/2.1.6 (Source), sowie 1.4/1.5 (Bin)
> probiert. Alles hat nix gebracht.


Ich habe mir mal die Mühe gemacht und es bei mir installiert. Die
librxtxSerial.so liegt in <jdk1.4>/jre/lib/i386 und ist ein symbolischer
Link auf <jdk1.4>/jre/lib/i386/librxtxSerial-2.1-6.so

Ich habe mir mal die Version 2.1-6 geholt. Dein Programm angepasst
(import gnu.io anstatt import javax.comm) und es hat auch keine Ports
gefunden :-( Mal eine root shell geöffnet, und siehe da ein serieller
Port ist da.

Meine letzte Vermutung ist, dass Du vielleicht das falsche jre nimmst.

Kann ich leider nicht weiterhelfen.

ciao Scotti

Erik Mautsch

unread,
Nov 22, 2003, 5:50:19 AM11/22/03
to
On Thu, 13 Nov 2003 23:53:59 +0100, Andreas Scott <sp...@scott-net.de>
wrote:

>Ich habe mir mal die Mühe gemacht und es bei mir installiert. Die

danke :-)

>librxtxSerial.so liegt in <jdk1.4>/jre/lib/i386 und ist ein symbolischer
>Link auf <jdk1.4>/jre/lib/i386/librxtxSerial-2.1-6.so

hatte ich auch so. nur eine andere version. benutze die binary version
1.5, da ich probleme beim compilieren der 2.1'er version habe.
obwohl ich das komplette entwicklungspaket von suse (ca. 1gb)
nachinstalliert hatte, gibt er mir beim make install ein fehler in
einem .c file aus.

>
>Ich habe mir mal die Version 2.1-6 geholt. Dein Programm angepasst
>(import gnu.io anstatt import javax.comm) und es hat auch keine Ports
>gefunden :-( Mal eine root shell geöffnet, und siehe da ein serieller
>Port ist da.

er findet meine .so files auch nicht. ich denke, daran liegt es bei
mir. obwohl ich LD_LIBRARY_PATH auf <jdk1.4>/jre/lib/i386> gesetzt
habe und zusätzlich noch ld.so.conf angepasst habe--->er findet die
shared libraries nicht.
habe auch import gnu.io.*; benutzt....
was hat das mit der root shell zu tun?

>
>Meine letzte Vermutung ist, dass Du vielleicht das falsche jre nimmst.

ich benutze die, die bei suse 8.2 standardmäßig in der distri
beiliegt.

>
>Kann ich leider nicht weiterhelfen.
>
>ciao Scotti


gruss
erik

Andreas Scott

unread,
Nov 22, 2003, 6:33:26 AM11/22/03
to
On Sat, 22 Nov 2003 11:50:19 +0100
Erik Mautsch <emau...@wi-bw.tfh-wildau.de> wrote:

> er findet meine .so files auch nicht. ich denke, daran liegt es bei
> mir. obwohl ich LD_LIBRARY_PATH auf <jdk1.4>/jre/lib/i386> gesetzt
> habe und zusätzlich noch ld.so.conf angepasst habe--->er findet die
> shared libraries nicht.
> habe auch import gnu.io.*; benutzt....

Starte mal Dein Programm mit java -Djava.library.path=<libVerzeichnis>
<Klasse>


> was hat das mit der root shell zu tun?
>

Bei mir habe ich standardmäßig keine Rechte um auf die serielle
Schnittstelle zuzugreifen, root darf das natürlich.

> >
> >Meine letzte Vermutung ist, dass Du vielleicht das falsche jre
> >nimmst.
>
> ich benutze die, die bei suse 8.2 standardmäßig in der distri
> beiliegt.
>

Vielleicht gibt es bei Dir ein jre und ein jdk. Prüfe das mal.

> >
> >Kann ich leider nicht weiterhelfen.
> >

ich fürchte das bleibt so 8-(

ciao Scotti

0 new messages