View Full Version : [Java] Can't find dependent libraries
superciccio14
05-05-2010, 16:14
Ciao a tutti devo usare tramite JNI delle dll di terze parti. In Eclipse ho dichiarato il path di riferimento con:
-Djava.library.path=C://...//bin
tuttavia l'errore mi permane, come fare?
Ciao!
Il messaggio non sembra essere quello della piattaforma java (che di norma dice cannot find xyz in java.library.path). Forse una delle librerie dinamiche che hai correttamente incluso richiede una terza libreria dinamica?
superciccio14
05-05-2010, 17:36
Ciao, allora ti riporto questo post che spiega correttamente la dinamica che sta dietro al problema:
http://www.eclipsezone.com/eclipse/forums/t64011.html
Fondamentalmente (fonte http://www.realityinteractive.com/rgrzywinski/archives/000219.html)
The root of the problem is that even with java.library.path set correctly, Windows will not look in anything other than its PATH for dependent libraries. This posting covers much of the problem, cause and solution. (I should point out that this is a Java problem not an Eclipse problem.) You might need to use something such as Dependency Walker to trace the set of DLL dependencies.
Io ho risolto in maniera brutale: ho copiato tutte le dll nel path della jre. Ma non è che c'è qualche soluzione migliore? :muro:
Grazie.
La fonte sbaglia, il problema non è della JVM.
Se mi trovassi al tuo posto farei due esperimenti. Uno è mettere tutte le dll nel java.library.path E caricarle esplicitamente con:
System.loadLibrary(...)
tutte, sia quelle usate da JNI che quelle usate dalle dll che usano jni.
Il secondo tentativo che farei e mettere tutte le dll nella directory di esecuzione del programma (ho un vago ricordo del fatto che la directory di esecuzione potrebbe essere automaticamente inclusa tra quelle in cui si vanno a cercare le librerie dinamiche).
superciccio14
06-05-2010, 07:42
Ciao, ma allora è un problema di Eclipse?
Allora per metterlo nella java.library.path devo agire su "build path" immagino ed includere anche tutte le dll tra i jar?
Il secondo tentativo mi è chiaro.
;)
Il problema non è di eclipse, a dire il vero non è proprio un problema :D, si tratta semplicemente di mettere dei file in una certa posizione. Secondo me al momento dell'esecuzione del programma va bene anche la directory di esecuzione ma non ho un appiglio tecnico al momento.
Non so dirti, non usandolo, dove mettere le mani in eclipse per specificare la posizione delle librerie dinamiche eventualmente richieste.
superciccio14
09-05-2010, 00:11
Niente...provo ad includere tra i jar ma niente... :/
fai una prova da linea di comando. Compili il programma, ti porti i jar in una cartella vuota, ci ficchi dentro le dll/so e vai di java -jar Programma.jar.
Altrimenti, In netbeans la cartella radice del progetto è inclusa nel path, forse funziona così anche per eclipse.
superciccio14
10-05-2010, 08:22
fai una prova da linea di comando. Compili il programma, ti porti i jar in una cartella vuota, ci ficchi dentro le dll/so e vai di java -jar Programma.jar.
Altrimenti, In netbeans la cartella radice del progetto è inclusa nel path, forse funziona così anche per eclipse.
Sì così dovrebbe andare, ma non mi risolve il problema in eclipse...che mistero! :muro:
Grazie per l'aiuto (e per la pazienza) :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.