2010-05-19 15 views
9

Tengo un proyecto de complemento Eclipse, y depende de otros proyectos que tengo en mi área de trabajo de Eclipse. Después de agregar las dependencias del proyecto en "Java Build Path" -> pestaña "Proyectos", y también seleccionar el proyecto en "Order and Export", obtengo un java.lang.NoClassDefFoundError.Eclipse Proyecto de complemento con otras dependencias de proyecto

Supongo que los otros proyectos no se han incluido correctamente en el complemento. ¿Alguien sabe cómo arreglar esto?

Gracias, James

Respuesta

12

tapón de un eclipse en el proyecto gestiona las dependencias de manera diferente que un proyecto normal de Java.

Supongo que está agregando paquetes con archivos .class.

Defina una carpeta de biblioteca en su proyecto de plug-in de Eclipse. Copie cualquier clase externa y/o jar a la carpeta de la biblioteca.

Abra el archivo MANIFEST.MF en el directorio META-INF. Verás un editor formateado con 8 pestañas en la parte inferior.

Haga clic en la pestaña Tiempo de ejecución. Agregue las clases y/o jar externos en la carpeta de la biblioteca al Classpath. Esto también agregará estas clases externas y/o jar a la ruta de compilación de Java del proyecto.

Haga clic en la pestaña Dependencias y agregue los otros proyectos de Java en el cuadro de diálogo Paquetes importados. Debes marcar la casilla "Mostrar paquetes no exportados". Si sus otros proyectos Java son complementos Eclipse, agréguelos en Complementos requeridos.

+0

Intenté agregar paquetes en la sección "Paquetes importados", pero no puedo encontrar los paquetes en mi otro proyecto en el cuadro de diálogo "Selección de paquete". ¿Hay algo que deba hacer antes de esto? –

+0

Lo siento, ha pasado un tiempo desde que creé un nuevo proyecto de complemento de Eclipse. He actualizado mi respuesta con más instrucciones. –

+0

Gilbert: ¿Podría aclarar un poco sus instrucciones? Agregué los binarios a través de Proyecto -> Ruta de compilación de Java -> Bibliotecas -> Agregar clase y luego importé los paquetes en la pestaña Dependencias del complemento. Ahora recibo los errores "No hay paquetes disponibles de exportación de paquetes 'x'" para los paquetes que importé en el archivo Manifest.MF. ¿Me he perdido algo? –

0

En caso de que no esté en condiciones de copiar el proyecto dependiente en su proyecto de complemento y de que esté seguro de la presencia del proyecto dependiente en el eclipse de destino donde se instalará el complemento, puede usar Runtime.exec() para ejecutar la clase Java que desea ejecutar o la clase ProcessBuilder para ejecutar la clase.

De esta manera:

// To compile 
Process p = Runtime.getRuntime().exec("javac yourclass.java"); 
// To execute 
Process p2 = Runtime.getRuntime().exec("java yourclass"); 

Esto puede ser considerado en el peor de los casos. Tuve una experiencia así y por eso pensé que algunos podrían encontrarla útil.

Cuestiones relacionadas