2013-02-04 34 views
9

In Processing, vorrei importare una libreria che ho scritto in Java che avvolge una libreria esterna (un file .jar).Come esportare un progetto Eclipse con dipendenze Jar esterne?

L'elaborazione sembra importare la mia libreria, ma quando chiamo il costruttore (che fa riferimento ad alcune classi nella libreria esterna), ottengo un java.lang.NoClassDefFoundError nella console della GUI di elaborazione.

Se invece di includere il file .jar esterno nel mio percorso di costruzione Eclipse, utilizzo il codice sorgente effettivo della libreria ed esporta tutto ciò, l'elaborazione non si lamenta.

Come potrei essere in grado di impacchettare questo progetto in modo che non debba includere tutto il codice sorgente della libreria (e invece includere solo il file .jar) nel mio progetto Eclipse?


Aggiornamento: Come da suggerimento N.L.telaviv s', ho scelto di esportare come un JAR eseguibile. Ciò che ha funzionato per me è stato selezionare l'opzione "Copia le librerie richieste in una sottocartella accanto al JAR generato". Qui viene creata un'altra cartella accanto a dove viene esportato .jar con le librerie .jar referenziate.

Aggiornamento2: l'altra opzione che funziona è "Estrai librerie richieste nel JAR generato". Ciò consente al JAR di accedere internamente ai riferimenti. Sembrava che la stessa cosa avrebbe funzionato con il suggerimento di N.L.telaviv, ma non sembra essere il caso. Scegli questa opzione se non vuoi avere altri file. Noterai, se esplori il file .JAR, che la libreria esterna si trova in una cartella di pacchetti separata.

+0

Ciao, ho scelto tutte queste opzioni, ma nessuno stava lavorando per me. Puoi dirmi quale sarà il problema? Grazie! –

risposta

6

Utilizzare l'opzione di esportazione del file JAR eseguibile.

Clicca sul progetto - Export - java- del file eseguibile jar - selezionare l'opzione per il confezionamento richiede librerie nel vaso di

+0

Ho appena provato, senza fortuna. L'unica differenza qui è che insieme all'importazione di MyProjectPackage. *, Processing importa anche org.eclipse.jdt.internal.jarinjarloader. * – funseiki

+0

verifica che la definizione del percorso di classe nel MANIFEST abbia ogni JAR in esso – Nimrod007

+0

Ti stai riferendo a .classpath file? Se questo è il caso, allora ha il .jar. Ho anche scoperto che invece di scegliere di creare un pacchetto nel jar generato, se scelgo "Copia le librerie richieste in una sottocartella accanto al JAR generato", sembra funzionare. – funseiki

Problemi correlati