it-swarm.com.de

So legen Sie den Java.library.path von Eclipse fest

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.

201
Janusz

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.

Native library location

288
John Gardner

Wenn Sie es als Argument VM hinzufügen, stellen Sie sicher, dass Sie -D voranstellen:

-Djava.library.path=blahblahblah...
34
matt b

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.

  • in Projekteigenschaften-> Java Build Path-> Tab "Source" finden Sie eine Liste Ihrer Quellordner
  • Für jeden Eintrag gibt es "native Bibliotheksspeicherorte", die auch Pfade innerhalb des Arbeitsbereichs unterstützen.
  • Dadurch wird Eclipse zu Ihrer Java.library.path hinzugefügt.
22
schieferstapel

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.

11

Sie können einfach -Djava.library.path=yourPath zum Eclipse.ini hinzufügen. 

8
sonaht

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"));
    }
}
6
janwen

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.

5
user825628

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.

5
Günter

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...

4
jim

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
3
Aurelien

Denken Sie daran, den systemeigenen Bibliotheksordner in PATH aufzunehmen.

1
JuanFran Adame

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

1
Alex Ventura

Irgendwann erhalten wir keinen Java Build Path, indem Sie direkt mit der rechten Maustaste auf das Projekt klicken. Dann gehen Sie zu den Eigenschaften. Right Click and go to properties

Klicken Sie dann auf Java-ErstellungspfadProperties Scrren

Click on add external jar

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.

0
vardhaman

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.

0
marc

sie können in Ihrer Eclipse ein vm-Argument hinzufügen.

Beispiel: - Djava.ext.dirs = cots_lib

dabei ist cots_lib Ihre externe Ordnerbibliothek.