# Probleme mit java.library.path



## eagle1985 (5. Februar 2010)

Hallo zusammen,

ich habe eine Frage zu Windows DLLs.

ich möchte in meinem Projekt DLL files laden. Diese befinden sich alle im verzeichnis E:\proj\dll

wenn ich nun java mittels -Djava.library.path=E:\proj\dll aufrufe, findet er zwar die dlls aber der "Standard"-LibraryPath wird überschrieben.

Weiss jemand wie ich den neuen Pfad einfach hinzufügen kann oder ich mittels relativer Pfadangabe (vom Run-Verzeichnis aus) die DLLs laden kann?

greez eagle


----------



## vfl_freak (5. Februar 2010)

Moin,

einfach so eine DLL laden und dann irgendwas ausführen geht IMHO nicht. 

Mit _*loadLibrary*_ kannst du sinnvollerweise ohnehin nur DLLs laden, welche auch JNI-Methoden enthalten (http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html).

Gruß
Klaus


----------



## jb007 (5. Februar 2010)

Hallo eagle1985,

versuch doch mal folgendes in Deiner Main Methode:

String myLibraryPath = "E:\proj\dll";
String newLibraryPath = System.getProperty("java.library.path") + ";" + myLibraryPath;
System.setProperty("java.library.path", newLibraryPath);

Sollte funktionieren falls, wie vfl_freak schon angedeutet hat, die DLL's JNI-Methoden enthalten.
Aber ich denke mal, das wird wohl der Fall sein....

Gruß Jens


----------



## miffi (8. Februar 2010)

Howdie.

Ein paar mehr Infos wären gut....
Verwendest du JNI oder JNA?
Wie lädst du die Bibliothek? Gibt es Dependencies?
Falls du JNA verwendest, wären die Punkte von meinen Vorrednern beispielsweise irrelevant, auch wenn sie Recht haben.

Und der Standard-Library-Path wird eigentlich nicht wirklich überschrieben, es handelt sich IMHO um einen temporären Eintrag, der priorisiert wird. In einem meiner JNA-Projekte habe ich den Path überschrieben und konnte trotzdem alle anderen System-Bibliotheken und installierte DLLs verwenden.

Gruß
miffi


----------

