PDA

Visualizza la versione completa : [Java] caricare dll presente nel jar


netarrow
13-10-2004, 15:44
ciao a tutti
ho un programma che necessita l'uso dei metodi nativi, funziona tutto ma la dll che li contiene deve essere per forza nella stessa dir del file jar.
Volevo sapere se c'è un modo per caricarne una archiviata dentro il jar dell'applicazione stessa che la utilizza.
Ho provato a intervenire come fosse un'immagine con getResource() o simili, ma non funziona.

Ecco per chiarezza il codice che uso:



...
static {
System.loadLibrary("nome_file");
}
...


Spero di essere stato chiaro.

:ciauz:

netarrow
13-10-2004, 19:55
up

netarrow
14-10-2004, 20:51
ho provato col ClassLoader come dice la doc:



static {
System.loadLibrary(class.getClassLoader().findLibr ary("Document"));
}


però da errore che non può essere utilizzato, il getClassLoader(), in un campo static.

Se dovessi caricare un immagine, come dovrei fare? Magari funziona anche per le librerie.
Trattandolo come immagine io ho provato così:



static {
System.loadLibrary(Document.class.getResource("Document"));
}


credo di aver sbagliato anche qui.

help

:ciauz:

Angelo1974
15-10-2004, 00:07
Ciao; la butto lì...potrei anche sbagliarmi, ma è possibile fare quello che intendi fare?
Una dll non dovrebbe trovarsi proprio sul pc invece che in un file .jar per funzionare?
Cmq, al limite ti consiglio ti postare questo tuo problema sul forum della sun; se ti dovessero rispondere mi fai sapere?
Ciao

netarrow
15-10-2004, 11:44
Originariamente inviato da Angelo1974
Ciao; la butto lì...potrei anche sbagliarmi, ma è possibile fare quello che intendi fare?
Una dll non dovrebbe trovarsi proprio sul pc invece che in un file .jar per funzionare?
Cmq, al limite ti consiglio ti postare questo tuo problema sul forum della sun; se ti dovessero rispondere mi fai sapere?
Ciao

ok, provo a chiedere sul forum della sun.
Però il jar di cui sto parlando contiene un'appliczione standalone che viene eseguita sul pc, ed il jar è sul pc.

Spiego il motivo della mia domanda, se faccio un programma a finestre in java che deve richiamare api di win, e i metodi nativi sono nella dll, file jar e dll dovranno trovarsi sempre assieme e volevo fare in modo di unirli.

:ciauz:

netarrow
15-10-2004, 12:08
ho trovato questo:
http://forum.java.sun.com/thread.jsp?forum=52&thread=366040
dicono che si può tenere ovviamente la dll dentro il jar, ma che System.load() e simili non si possono usare :cry:

:ciauz:

Loading