java.library.path

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kruppi
Beiträge: 6
Registriert: 19.07.2005 12:04:42

java.library.path

Beitrag von kruppi » 13.03.2007 10:03:51

Hallo,

kann man Systemweit jedem startenden Javaprogramm den java.library.path setzen.

Mir bekannt sind folgende Methoden:
  • export LD_LIBRARY_PATH=xxx
    Parameter -Djava.library.path=xxx beim java aufruf
Wie ermittelt java den Standardinhalt von java.library.path.

Ich möchte /usr/local/lib mit da rein haben, aber /etc/ld.so.conf wird ignoriert.


Danke

/kruppi

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 13.03.2007 10:35:43

Systemweit kannst du diesen Pfad über /etc/ld.so.conf anpassen, nachher "ldconfig" aufrufen (!)
Bei Etch gibt es noch die schönere Variante über eine eigene Configdatei /etc/ld.so.conf.d/*.conf

Gruß
gms

kruppi
Beiträge: 6
Registriert: 19.07.2005 12:04:42

Beitrag von kruppi » 13.03.2007 11:53:29

gms hat geschrieben:Systemweit kannst du diesen Pfad über /etc/ld.so.conf anpassen, nachher "ldconfig" aufrufen (!)
Vielen Dank für deine Antwort.

Die Einstellungen in /etc/ld.so.conf werden leider durch das java ignoriert

Inhalt /etc/ld.so.conf

Code: Alles auswählen

# more /etc/ld.so.conf 
/usr/X11R6/lib

/usr/lib/libc5-compat
/lib/libc5-compat
/usr/i486-linuxlibc1/lib
/usr/local/lib
/opt/informix/lib
/opt/informixi/lib/esql
Fehlermeldung

Code: Alles auswählen

For your information, the current value of java.library.path is:
/usr/lib/j2se/1.4/jre/lib/i386/client:/usr/lib/j2se/1.4/jre/lib/i386:/usr/lib/j2se/1.4/jre/../lib/i386:/usr/lib:/lib:/usr/lib/j2se/i386:/usr/lib/jni
Es funktioniert, wenn ich eine der beiden o.g. Methoden anwende.
Aber irgendwo muss doch der Inhalt von java.library.path herkommen. :?:

Grüsse
/kruppi

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 13.03.2007 12:40:01

"dlopen" dieser Library würde sicherlich auch über ld.so.conf funktionieren, vermutlich "überprüft" aber die JVM ( Sun ? ) zuerst, ob diese Library auch manuell gefunden werden kann :)
Sorry, wußte ich auch nicht

Gruß
gms

[edit]
Es wird anscheinend eine neue LD_LIBRARY_PATH Variable für den Childprozeß, unter Berücksichtigung von java.library.path, LD_LIBRARY_PATH und den (architekturspezifischen) JVM Verzeichnissen, zusammengestoppelt
[/edit]

Antworten