2009-08-04 19 views
5

Ho provato ad aggiungere il file jar vfs di apache come dipendenza di runtime. Anche se genera l'errore di seguito:Come posso aggiungere il jar esterno all'applicazione eclipse rcp?

java.lang.ClassNotFoundException: org.apache.commons.vfs.VFS a org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal (BundleLoader.java:489) all'indirizzo org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:405) all'indirizzo org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:393) presso org.eclipse.osgi .internal.baseadaptor.DefaultClassLoader.loadClass (DefaultClassLoader.java:105) a java.lang.ClassLoader.loadClass (ClassLoader.java:251) a java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) a file_explorer .View.setInput (View.java:295) a file_explorer.View.initialize (View.java:130)

Come posso risolvere questo, grazie in anticipo.

risposta

3

Il modo migliore per includere Jar esterno nell'applicazione Eclipse RCP è comprimerlo come plug-in e quindi utilizzare la dipendenza classica del plug-in.

Basta creare un nuovo plugin contenente solo il tuo Jar. Quindi, nella scheda build dell'editor manifest, aggiungi il tuo jar al classpath (in basso a destra) ed esporta tutti i suoi pacchetti nella stessa scheda runtime. Assicurati anche di controllare che il tuo jar sia selezionato nella scheda Build.

Tuttavia, dovresti essere in grado di utilizzare il jar in un codice sorgente del plugin Given se lo aggiungi solo al classpath come ho detto in precedenza.

Perché qualche altro dei tuoi plugin potrebbero essere interessati a utilizzare il vaso VFS e per separtion delle preoccupazioni importa Penso che si dovrebbe avvolgerla in un proprio plugin di

2

Il modo più semplice è quello di trovare fascio in un fascio OSGI esistente repository.

http://bundles.osgi.org/Main/Repository 
http://www.springsource.com/repository/app/ 
http://www.eclipse.org/orbit/ 
http://www.knopflerfish.org/repo/index.html 

SpringSource repo contiene apache VFS fascio

Poi è necessario aggiungere il pacchetto alla piattaforma di destinazione (o semplicemente copiarlo nella cartella dropins)

Per installare correttamente fascio in un la versione più recente di Eclipse deve utilizzare un repository p2 esistente e installare il bundle dal repository p2 nella piattaforma runtime. Ci sono due modi: puoi usare quello esistente (come il repository p2 di orbit), oppure puoi crearne uno usando l'editore p2 come descritto a https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

2

Se stai cercando di aggiungere i vasi necessari al tuo classpath del progetto. Aggiungi il i file richiesti nella directory lib nella struttura del progetto. Quindi, dal progetto, fare clic sulla scheda "run time" di plugin.xml e aggiungere i jar necessari dalla directory lib al percorso di classe del progetto.

1

Eclipse RCP è un ambiente OSGi che estende il modello di dipendenza Java, quindi non è sufficiente prendere un file jar e sperare che funzioni. Per utilizzare un jar esterno, devi prima costruirlo a un plug-in, che può essere d'aiuto con p2-maven-plugin, puoi seguire il documento leggimi.

Con il plug-in pronto, è necessario installare il plug-in e aggiungerlo a MANIFEST.MF. Quindi riavvia Eclipse per far funzionare il plugin.

Un più facilmente modo, non è necessario installare il plugin, basta seguire (ma costruire il vaso):

  1. andare a plugin.xml ->Runtime scheda;
  2. fare clic su Add nella sezione classpath, quindi aggiungere il plug-in a classpath;
  3. assicurarsi che ci sia il percorso . nell'area di testo, altrimenti New esso.
Problemi correlati