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

System.loadLibrary()

2 views
Skip to first unread message

Christine Kievernagel

unread,
Nov 20, 2003, 4:42:03 AM11/20/03
to
Hilfe,

ich bin schier verzweifelt.
Ich versuche eine NativeLib per System.loadLibrary() zu laden. Ich
weiss einfach nicht was ich falsch mache, ich hoffe mir kann jemand
von Euch helfen. Hier ein Codeausschnitt:

------
//aktueller lib-pfad:
String currentValue = System.getProperty( "java.library.path", ""
);
//m_DLLPATH= Pfad in dem die eInstall.dll liegt. (hier habe ich auch
mal mit "C:\\" getestet und dann auch dorthin die dll gelegt)
String newValue = new String( m_DLLPATH+";"+currentValue);

//Properties aktualisieren:
System.setProperty( "java.library.path", newValue );
System.out.println( "java.library.path = " +
System.getProperty("java.library.path", "") );
System.loadLibrary( "eInstall" );
-------

Als Fehlermeldung bekomme ich:

java.lang.UnsatisfiedLinkError: no eInstall 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 de.elster.client.util.JNI_Installer.<clinit>(JNI_Installer.java:48)
at de.elster.client.util.Installer.dllsInstaller(Installer.java:250)
at de.elster.client.util.Installer.dllsUpdater(Installer.java:142)
at de.elster.client.TestClass.importIni(TestClass.java:297)
...

Für Hilfe wäre ich sehr dankbar.
Gruss,
Christine

Klaus Mueller

unread,
Nov 20, 2003, 4:48:59 AM11/20/03
to
Kannst Du es erstmal versuchen, indem Du das System-Property nicht
aenderst und die DLL manuell in den Pfad legst?

Klaus

Nico Seessle

unread,
Nov 20, 2003, 5:26:37 AM11/20/03
to
Klaus Mueller wrote:

> Kannst Du es erstmal versuchen, indem Du das System-Property nicht
> aenderst und die DLL manuell in den Pfad legst?

Oder das (eher die, oder?) System-Property vor (bzw. beim) Start der
Anwendung angeben (java -Djava.library.path=...) - zur Laufzeit lässt
sich diese nicht mehr ändern (bzw. lässt sich ändern, hat aber keine
Auswirkungen mehr, da der Wert von java.lang.ClassLoader gecacht wird).

Geht evtl. auch ein System.load("absoluter pfadname")? Laut API-Dok.
sollte es das tun...

Nico

Tobias Vogele

unread,
Nov 20, 2003, 5:31:19 AM11/20/03
to
Hallo,

Christine Kievernagel wrote:
> System.setProperty( "java.library.path", newValue );

Ich glaube, den java.library.path kann man nicht nachträglich ändern.
Das geht höchstens beim Aufruf mit dem Schalter -D.
Aber wenn Du den Pfad kennst, kannst Du die lib auch einfach mit
System.load(filename) laden.

Grüße,

tobi

Christine Kievernagel

unread,
Nov 20, 2003, 8:13:38 AM11/20/03
to
Hallo Nico, Hallo Tobias

>System.load("absoluter pfadname")?

Das war des Rätsels Lösung! Vielen Dank *freu* *spring* *Orden ansteckt*

Das war die Rettung. anscheinend kann man die Properties von library Path
zwar im nachhinein setzen, aber es hatte keinen Effekt.
Mit absolutem Pfad und System.load ("C:\\test\\test.dll"); hat es
funktioniert.

Gruss,
Christine


0 new messages