Wie kann ich den Java.library.path für ein gesamtes Eclipse-Projekt festlegen? Ich verwende eine Java-Bibliothek, die auf betriebssystemspezifischen Dateien basiert und eine .dll/.so/.jnilib suchen muss. Die Anwendung wird jedoch immer mit einer Fehlermeldung beendet, dass diese Dateien nicht im Bibliothekspfad gefunden werden.
Ich möchte dieses gesamte Projekt so konfigurieren, dass es den Bibliothekspfad verwendet. Ich habe versucht, den Pfad als VM - Argument einigen Laufkonfigurationen in Eclipse hinzuzufügen, aber das hat nicht funktioniert.
Leg dich nicht mit dem Bibliothekspfad an! Eclipse baut es selbst!
Gehen Sie stattdessen in die Bibliothekseinstellungen für Ihre Projekte und erweitern Sie sie für jedes Jar/etc, für das eine native Bibliothek erforderlich ist, auf der Registerkarte Libraries . In der Strukturansicht enthält jede Bibliothek Elemente für Quell-/Javadoc- und native Bibliotheksspeicherorte.
Insbesondere: Wählen Sie Project
aus, klicken Sie mit der rechten Maustaste -> Eigenschaften / Java Build Path / - Bibliotheken , wählen Sie eine JAR-Datei aus, erweitern Sie sie, wählen Sie Speicherort der systemeigenen Bibliothek , klicken Sie Edit , Ordnerauswahldialog erscheint
Das Durchspielen des Bibliothekspfads in der Befehlszeile sollte Ihre letzte Anstrengung sein, da Sie möglicherweise etwas kaputt machen, das bereits von Eclipse ordnungsgemäß festgelegt wurde.
Wenn Sie es als Argument VM hinzufügen, stellen Sie sicher, dass Sie -D
voranstellen:
-Djava.library.path=blahblahblah...
Abgesehen von der in der genehmigten Antwort beschriebenen Weise gibt es eine andere Möglichkeit, wenn Sie in Ihrem Projekt eine einzige native Bibliothek haben.
Bei einem bestimmten Anwendungsstart können Sie dies wie von Jim beschrieben tun.
Wenn Sie es für den gesamten Arbeitsbereich festlegen möchten, können Sie es auch unter festlegen
Window->
Preferences->
Java->
Installed JREs
Jede JRE verfügt über "Default VM" - Argumente (die meines Erachtens vollständig ignoriert werden, wenn VM - Argumente für eine Laufkonfiguration festgelegt sind.)
Sie können sogar verschiedene JRE/JDKs mit unterschiedlichen Parametern einrichten und einige Projekte verwenden, andere dagegen.
Sie können einfach -Djava.library.path=yourPath
zum Eclipse.ini
hinzufügen.
Fügen Sie einfach die * .dll-Dateien zu c:/windows hinzu
Sie können den Java.library.path von den folgenden Codes erhalten: und dann Ihre DLL-Dateien unter einem beliebigen Pfad hinzufügen
import Java.util.logging.Logger;
public class Test {
static Logger logger = Logger.getLogger(Test.class.getName());
public static void main(String[] args) {
logger.info(System.getProperty("Java.library.path"));
}
}
Ich denke, es gibt noch einen weiteren Grund, Java.library.path einzustellen. Subversion wird mit vielen Bibliotheken geliefert und Eclipse kann diese nicht sehen, es sei denn, Java.library.path kann angefügt werden. Zum Beispiel bin ich unter OS-X, also befinden sich die Bibliotheken unter\opt\Subversion\lib. Es gibt viele von ihnen, und ich möchte sie dort behalten, wo sie sich befinden (nicht in ein Standard-lib-Verzeichnis kopieren).
Projekteinstellungen können dies nicht beheben.
Keine der oben genannten Lösungen funktionierte für mich (Eclipse Juno mit JDK 1.7_015). Java konnte die Bibliotheken nur finden, wenn ich sie von project_folder/lib in project_folder verschoben habe.
Klicken Sie auf Ausführen
Klicken Sie auf Debug ...
Neue Java-Anwendung
Klicken Sie auf die Registerkarte Argumente
Fügen Sie im zweiten Feld (VM-Argumente) den Eintrag -D hinzu
-Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/Oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService
usw...
Eine andere Lösung wäre, die 'Laufkonfiguration' zu öffnen und dann auf der Registerkarte 'Umgebung' das Paar {Pfad, Wert} festzulegen.
Um zum Beispiel ein 'lib'-Verzeichnis hinzuzufügen, das sich im Stammverzeichnis des Projekts befindet,
Path <- ${workspace_loc:name_of_the_project}\lib
Denken Sie daran, den systemeigenen Bibliotheksordner in PATH aufzunehmen.
Ich verwende Mac OS X, Yosemite und Netbeans 8.02. Ich habe den gleichen Fehler erhalten und die einfache Lösung, die ich gefunden habe, ist wie oben. Dies ist nützlich, wenn Sie die native Bibliothek in das Projekt aufnehmen möchten. Machen Sie das nächste für Netbeans:
1.- Right click on the Project
2.- Properties
3.- Click on RUN
4.- VM Options: Java -Djava.library.path="your_path"
5.- for example in my case: Java -Djava.library.path=</Users/Lexynux/NetBeansProjects/NAO/libs>
6.- Ok
Ich hoffe, es könnte für jemanden nützlich sein .. Der Link, wo ich die Lösung gefunden habe, ist hier: Java.library.path - Was ist das und wie benutzt man
Irgendwann erhalten wir keinen Java Build Path, indem Sie direkt mit der rechten Maustaste auf das Projekt klicken. Dann gehen Sie zu den Eigenschaften.
Klicken Sie dann auf Java-Erstellungspfad
Klicken Sie auf die Registerkarte Externe Gläser hinzufügen und geben Sie den Pfad Ihrer Computerdatei an, in der Sie Gläser gespeichert haben.
Hier ist ein weiterer Fix:
Mein Buildsystem (Gradle) fügte dem Eclipse-Erstellungspfad eine erforderliche native Bibliothek (DLL) hinzu (Rechtsklick auf Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bibliotheken). Das Problem wurde behoben, indem das Buildsystem aufgefordert wurde, die native DLL-Bibliothek nicht zum Eclipse-Klassenpfad hinzuzufügen.
sie können in Ihrer Eclipse ein vm-Argument hinzufügen.
Beispiel: - Djava.ext.dirs = cots_lib
dabei ist cots_lib Ihre externe Ordnerbibliothek.