web-dev-qa-db-fra.com

Comment définir le Java.library.path à partir d'Eclipse

Comment définir le Java.library.path pour un projet Eclipse complet? J'utilise une bibliothèque Java qui repose sur des fichiers spécifiques du système d'exploitation et doit trouver un fichier .dll/.so/.jnilib. Mais l'application se ferme toujours avec un message d'erreur indiquant que ces fichiers ne sont pas trouvés sur le chemin de la bibliothèque. 

Je voudrais configurer tout ce projet pour utiliser le chemin de la bibliothèque. J'ai essayé d'ajouter le chemin en tant qu'argument VM à certaines configurations d'exécution dans Eclipse, mais cela n'a pas fonctionné.

201
Janusz

Ne jouez pas avec le chemin de la bibliothèque! Eclipse le construit lui-même!

A la place, accédez aux paramètres de bibliothèque de vos projets et, pour chaque fichier jar/etc nécessitant une bibliothèque native, développez-le dans l'onglet Bibliothèques . Dans l'arborescence, chaque bibliothèque contient des éléments pour les emplacements source/javadoc et les bibliothèques natives.

Spécifiquement: sélectionnez Project, clic droit -> Propriétés / Chemin de construction Java / Bibliothèques onglet, sélectionnez un fichier .jar, développez-le, sélectionnez Emplacement de la bibliothèque native , cliquez sur Edit , la boîte de dialogue de sélection de dossier apparaîtra)

Vous devez jouer avec le chemin de la bibliothèque sur la ligne de commande devrait être votre dernier effort, car vous pourriez casser quelque chose qui est déjà correctement défini par Eclipse.

Native library location

288
John Gardner

Si vous l'ajoutez en tant qu'argument VM, assurez-vous de le préfixer avec -D:

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

À l'exception de la manière décrite dans la réponse approuvée, il existe une autre méthode si votre projet contient des bibliothèques natives uniques.

  • dans Propriétés du projet-> Chemin de construction Java-> Onglet "Source", une liste de vos dossiers source.
  • Pour chaque entrée, il y a "Emplacement des bibliothèques natives", qui prend également en charge les chemins dans l'espace de travail.
  • Cela fera qu’Eclipse l’ajoute à votre Java.library.path.
22
schieferstapel

Pour un lancement d’application donné, vous pouvez le faire comme le dit jim.

Si vous souhaitez le définir pour l’ensemble de l’espace de travail, vous pouvez également le définir sous

Window->
  Preferences->
    Java->
      Installed JREs

Chaque JRE a un "argument VM par défaut" "(qui, à mon avis, sont complètement ignorés si un argument VM est défini pour une configuration d'exécution.)

Vous pouvez même configurer différents JRE/JDK avec différents paramètres et faire en sorte que certains projets en utilisent un, d'autres en utilisent un autre.

11

Vous pouvez simplement ajouter -Djava.library.path=yourPath au Eclipse.ini

8
sonaht

Ajoutez simplement les fichiers * .dll à votre c:/windows

Vous pouvez obtenir le fichier Java.library.path à partir des codes suivants: et ensuite vous ajouter des fichiers dll sous n’importe quel chemin.

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

Je pense qu'il y a une autre raison de vouloir définir Java.library.path. Subversion est livré avec de nombreuses bibliothèques et Eclipse ne les verra que si Java.library.path peut être ajouté. Par exemple, je suis sur OS-X, les bibliothèques sont donc sous\opt\Subversion\lib. Il y en a beaucoup et j'aimerais les garder où ils sont (ne pas les copier dans un répertoire lib standard).

Les paramètres du projet ne résoudront pas le problème.

5
user825628

Aucune des solutions ci-dessus n'a fonctionné pour moi (Eclipse Juno avec JDK 1.7_015). Java n'a pu trouver les bibliothèques que lorsque je les ai déplacées de project_folder/lib vers project_folder.

5
Günter

Cliquez sur Exécuter
Cliquez sur Debug ...
Nouvelle application Java
Cliquez sur l'onglet Arguments
dans la 2e zone (Arguments de la machine virtuelle), ajoutez l’entrée -D 

-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  

etc...

4
jim

Une autre solution consisterait à ouvrir la "configuration d'exécution" puis, dans l'onglet "Environnement", à définir le couple {Chemin, Valeur}. 

Par exemple, pour ajouter un répertoire 'lib' situé à la racine du projet,

    Path  <-  ${workspace_loc:name_of_the_project}\lib
3
Aurelien

N'oubliez pas d'inclure le dossier de la bibliothèque native dans PATH.

1
JuanFran Adame

J'utilise Mac OS X Yosemite et Netbeans 8.02. J'ai la même erreur et la solution simple que j'ai trouvée est la même que ci-dessus. C'est utile lorsque vous devez inclure une bibliothèque native dans le projet. Alors faites la prochaine pour 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

J'espère que cela pourra être utile à quelqu'un . Le lien où j'ai trouvé la solution est ici: Java.library.path - Qu'est-ce que c'est et comment l'utiliser

1
Alex Ventura

Parfois, nous n’obtenons pas le chemin de construction Java en cliquant directement sur project . Right Click and go to properties

Puis cliquez sur le chemin de construction JavaProperties Scrren

Click on add external jar

Cliquez sur l'onglet Ajouter des fichiers externes et indiquez le chemin du fichier de votre ordinateur où vous avez stocké des fichiers.

0
vardhaman

Voici un autre correctif:

Mon système de construction (Gradle) a ajouté une bibliothèque native requise (dll) au chemin de construction Eclipse (clic droit sur Projet -> Propriétés -> Chemin de construction Java -> Bibliothèques). Dire au système de construction de ne pas ajouter la bibliothèque de DLL native au chemin de classe Eclipse a résolu le problème.

0
marc

vous pouvez ajouter un argument vm dans votre Eclipse.

Exemple: - Djava.ext.dirs = cots_lib

où cots_lib est votre bibliothèque de dossiers externes.

0