Come impostare java.library.path da Eclipse


209

Come posso impostare java.library.pathper un intero progetto Eclipse? Sto usando una libreria Java che si basa su file specifici del sistema operativo e ho bisogno di trovare un file .dll/ .so/ .jnilib. Ma l'applicazione esce sempre con un messaggio di errore che quei file non sono stati trovati nel percorso della libreria.

Vorrei configurare l'intero progetto per utilizzare il percorso della libreria. Ho provato ad aggiungere il percorso come argomento VM per alcune configurazioni di esecuzione in eclipse ma non ha funzionato.


1
L'ho fatto aggiungendolo come argomento VM e ha funzionato. Come hai fatto esattamente?
Michael Myers

Risposte:


296

Non scherzare con il percorso della libreria! Eclipse lo costruisce da solo!

Invece, vai nelle impostazioni della libreria per i tuoi progetti e, per ogni jar / etc che richiede una libreria nativa, espanderlo nella scheda Librerie . Nella visualizzazione ad albero, ogni libreria ha elementi per source / javadoc e posizioni della libreria nativa.

In particolare: selezionare Project, fare clic con il tasto destro -> Proprietà / Percorso di build Java / scheda Librerie , selezionare un .jar, espanderlo, selezionare la posizione della libreria nativa , fare clic su Modifica , verrà visualizzata la finestra di dialogo di scelta della cartella)

Pasticciare con il percorso della libreria sulla riga di comando dovrebbe essere il tuo ultimo disperato sforzo, perché potresti rompere qualcosa che è già stato impostato correttamente da eclipse.

Posizione della libreria nativa


6
Ma come funziona se hai più di una cartella da aggiungere?
Dan

2
questa è una buona domanda. Perché hai più di una cartella di librerie native per un jar? Sono abbastanza sicuro che ci sia un modo in cui puoi incorporare le librerie native stesse nel jar, quindi potrebbe essere la strada da percorrere?
John Gardner il

1
Sto lavorando a un progetto legacy su cui ho pochissimo controllo. Non posso certo cambiare la struttura del progetto. La mia soluzione alternativa per il momento è mettere tutto sul mio PERCORSO, ma non è così bello.
Dan

1
a seconda del sistema operativo, potresti creare una directory contenente tutti i collegamenti simbolici alle altre librerie? o almeno per scopi di sviluppo potresti copiare tutte le librerie in una directory.
John Gardner

2
Non posso fare questo bastone. Posso aggiungere il percorso della libreria nativa, ma quando faccio clic su OK per tornare indietro completamente e poi saltare di nuovo alle proprietà del progetto, viene visualizzato "Nessuno". Sto usando eclipse Indigo SR2
bacar

37

Se lo stai aggiungendo come argomento VM, assicurati di anteporre -D:

-Djava.library.path=blahblahblah...

3
Vedi questo post: stackoverflow.com/a/2309723/510583 . -Djava.library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}"
leo

23

Tranne il modo descritto nella risposta approvata, c'è un altro modo se hai singole librerie native nel tuo progetto.

  • in Proprietà progetto-> Percorso build Java-> scheda "Origine" c'è un elenco delle cartelle di origine
  • Per ogni voce, c'è "Percorsi della libreria nativa", che supporta anche i percorsi all'interno dell'area di lavoro.
  • Questo farà sì che Eclipse lo aggiunga al tuo file java.library.path.

2
eccezionale!!!! molte grazie!!! che ha risolto il mio problema. necessario aggiungere dylib al mio progetto e un jar. l'impostazione della posizione della libreria nativa lo ha risolto!
ufk

11

Per l'avvio di una determinata applicazione, puoi farlo come dice Jim.

Se vuoi impostarlo per l'intero spazio di lavoro, puoi anche impostarlo sotto

Window->
  Preferences->
    Java->
      Installed JREs

Ogni JRE ha un "Argomenti VM predefiniti" (che ritengo siano completamente ignorati se vengono impostati argomenti VM per una configurazione di esecuzione).

È anche possibile impostare diversi JRE / JDK con parametri diversi e fare in modo che alcuni progetti ne utilizzino uno, altri ne utilizzino un altro.


8

Puoi semplicemente aggiungere -Djava.library.path=yourPathal file eclipse.ini.


6

Basta aggiungere i *.dllfile al tuoc:/windows

È possibile ottenere java.library.path dai seguenti codici: e quindi aggiungere i file dll in qualsiasi percorso ottenuto

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

Ciò significherebbe che anche tutti coloro che utilizzano il tuo progetto dovrebbero inserirli.
xtofl

Grazie per questo. L'idea di inserire le DLL c:/windowsmi ha dimostrato che si trattava solo di un problema di percorso e non di un problema con le DLL.
vegemite4me

5

Nessuna delle soluzioni sopra ha funzionato per me (Eclipse Juno con JDK 1.7_015). Java è riuscito a trovare le librerie solo quando le ho spostate da project_folder / lib a project_folder.


Che cosa? Perché dovrebbe essere importante ..? O_o
Campa

5

Penso che ci sia un altro motivo per voler impostare java.library.path. Subversion viene fornito con molte librerie ed Eclipse non le vedrà a meno che non java.library.pathpossano essere aggiunte. Ad esempio, sono su OS-X, quindi le librerie sono sotto \opt\subversion\lib. Ce ne sono molti e mi piacerebbe tenerli dove sono (non copiarli in una directory lib standard).

Le impostazioni del progetto non risolveranno questo problema.


quindi, dove devo aggiungere i parametri java.library.path?
eLRuLL

4

Fare
clic su Esegui Fare clic su Debug ...
Nuova applicazione Java
Fare clic sulla scheda Argomenti
nella seconda casella (Argomenti VM) aggiungere la voce -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  

eccetera...


1
Inoltre, nella configurazione dell'esecuzione, vai alla scheda "Common" e scegli una posizione nel tuo progetto per salvare la configurazione dell'esecuzione. Ciò consente di archiviare la configurazione di esecuzione (file xxxx.launch) in modo che altri membri del team possano riutilizzarla.
Scott Stanchfield,

3

Un'altra soluzione sarebbe aprire la "configurazione di esecuzione" e poi nella scheda "Ambiente", impostare la coppia {Percorso, Valore}.

Ad esempio, per aggiungere una directory 'lib' situata nella radice del progetto,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

Ma forse direttamente l'argomento VM -Djava.library.pathnella scheda Argomenti ?
Campa


1

Sto usando Mac OS X Yosemite e Netbeans 8.02, ho ricevuto lo stesso errore e la semplice soluzione che ho trovato è come sopra, questo è utile quando devi includere la libreria nativa nel progetto. Quindi fai il prossimo per 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

Spero possa essere utile per qualcuno. Il link dove ho trovato la soluzione è qui: java.library.path - Cos'è e come si usa


0

A volte non otteniamo Java Build Path facendo clic con il pulsante destro del mouse sul progetto. poi vai alle proprietà ....Fare clic con il tasto destro e andare alle proprietà

Quindi fare clic su java build pathProprietà Scrren

Fare clic su aggiungi jar esterno

Fare clic sulla scheda aggiungi barattoli esterni e fornire il percorso del file del computer in cui sono stati memorizzati i barattoli.


0

Ecco un'altra soluzione:

Il mio sistema di compilazione (Gradle) ha aggiunto una libreria nativa richiesta (dll) al percorso di compilazione di Eclipse (fare clic con il pulsante destro del mouse su Progetto -> Proprietà -> Percorso build Java -> Librerie). Dire al sistema di compilazione di non aggiungere la libreria dll nativa al classpath di Eclipse ha risolto il problema.


0

Puoi aggiungere l'argomento vm nel tuo Eclipse.

Esempio :

-Djava.ext.dirs=cots_lib

dov'è la cots_libtua libreria di cartelle esterne.


-1

il modo più semplice sarebbe usare lo stesso IDE eclipse. Vai al menu e imposta il percorso di costruzione. Fallo puntare al percorso del file JAVA JDK e JRE nella tua directory. in seguito puoi controllare il percorso di compilazione in cui verranno impostati i file compilati. nella cartella bin per impostazione predefinita però. La cosa migliore sarebbe consentire a eclipse di gestire da solo il percorso di compilazione e solo di modificarlo in modo simile alla soluzione fornita sopra

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.