2009-03-19 35 views
25

Hola a todos. Estoy trabajando en un proyecto para la escuela donde recibimos el archivo .class pero no la fuente para incluir en nuestro código. Estoy usando Eclipse, y quiero incluir el archivo en mi proyecto para poder crear una instancia de objetos y usarlo. ¿Cómo incluyo archivos .class en mi proyecto en Eclipse? (Java)

El archivo es TokenizerImpl.class, y quiero utilizar de esta manera:

TokenizerImpl tokenizer = new TokenizerImpl(foo);

pongo el archivo en mi carpeta del proyecto, y Eclipse dice que "TokenizeImpl no se puede resolver como un tipo", que supongo medios no puede encontrar la clase o fuente. Intenté ponerlo en la carpeta "bin" del proyecto y obtuve el mismo error. La búsqueda de Google y la búsqueda de SO no parecieron responder a esto, así que le daré una oportunidad. ¿Cómo hago esto, oh sabios?

Editar: Oh querido, encontré que el problema era algo completamente diferente. Estas soluciones funcionaron bien, pero olvidé crear la interfaz Tokenizer implementada por TokenizerImpl. Doh. Sin embargo, gracias por toda su ayuda, aprendí mucho sobre el eclipse.

Respuesta

40

Puede agregar un directorio que contenga los archivos de clase al proyecto Eclipse, solo si está dentro de uno de sus proyectos Eclipse, ya sea en un directorio generado o en uno que haya creado.

Esto se puede hacer agregando la carpeta de clase a la ruta de compilación Java de la aplicación. Puede configurar esto en las propiedades del Proyecto, visitando Ruta de compilación de Java -> Bibliotecas -> Agregar carpeta de clase. Tenga en cuenta que deberá especificar la carpeta raíz que contiene los archivos de clase en sus paquetes.

Por lo tanto, si desea tener acceso al compilador com.stackoverflow.Example.class presente en el directorio de clases del proyecto A (pero no en la ruta de compilación del proyecto A), debe agregar 'classes' como carpeta de clase, y no classes/com/stackoverflow como una carpeta de clase.

+2

"Tenga en cuenta que deberá especificar la carpeta raíz que contiene los archivos de clase en sus paquetes". +1 –

0

Otras personas han dado mejores respuestas. Esta "respuesta" fue principalmente para obtener información del PO porque la pregunta original en realidad no nos decía, en su totalidad, qué se había intentado. Ahora hay twoanswers que realmente responden la pregunta a largo plazo.

Mi respuesta original se deja a continuación para el contexto.

¿Lo copió en la carpeta bin dentro de Eclipse o fuera de Eclipse? Si hiciste esto fuera de Eclipse, entonces tienes que hacer clic derecho en la carpeta "bin" y seleccionar "actualizar" para Eclipse para ver el nuevo archivo.

Un archivo * class en la carpeta adecuada (según su paquete) en el directorio bin debería hacerlo.

+0

Está en la carpeta bin, pero ¿tengo que hacer algo para agregarlo al paquete apropiado? Solo colócalo en la carpeta del paquete, ¿correcto? – jergason

+0

Si está en el paquete com.stackoverflow.javacode, debe colocar el archivo de clase en el directorio bin/com/stackoverflow/javacode/ – Eddie

+0

CUIDADO: ¡Si alguna vez limpia el área de trabajo, su archivo .class desaparecerá! – dhiller

14

Proyecto -> Propiedades -> Java Build Path -> Bibliotecas -> Añadir carpeta de clase externos

La carpeta debe contener una jerarquía de paquetes, es decir, si su clase es realmente foo.bar.TokenizerImpl debe estar en el subdirectorio foo/bar.

1

También puede JAR los archivos de clase que desea agregar y agregar el archivo JAR a las dependencias de compilación. Para mí esta es la solución más limpia. Internamente, el archivo JAR debe tener la estructura de directorios correcta, por supuesto.

Haga clic derecho en su proyecto y seleccione Java Build Path para agregar nuevas dependencias.

Copiarlo en la carpeta bin no funcionará muy bien porque está destinado a contener el resultado de las fuentes compiladas. Tan pronto como limpie algo, el archivo desaparecerá.

0

o pon todo en un archivo jar y agrégalo como un jar externo.

Cuestiones relacionadas